Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 简单驯服计算器项目_Python_Python 3.x_Oop - Fatal编程技术网

Python 简单驯服计算器项目

Python 简单驯服计算器项目,python,python-3.x,oop,Python,Python 3.x,Oop,我刚开始学习python上的oop,我决定做这个小项目来练习一下。 我想知道的是,我是否使用正确的方法,通过使用继承和一些多态性,根据creatur类定义不同的休眠,将生物的名称与其休眠联系起来 我还想知道什么是合适的方法,这样用户就可以改变攻击方法的效果,就像你用更好的装备击打生物一样。帝力和貂是一种驯服的动物。它们是实例,而不是类 因此,您需要一个能够容纳不同属性的类 另外,假设麻木是健康或精力,我不确定为什么攻击功能会影响自身。实例不应该攻击其他对象吗 class tame_dilo:

我刚开始学习python上的oop,我决定做这个小项目来练习一下。
我想知道的是,我是否使用正确的方法,通过使用继承和一些多态性,根据creatur类定义不同的休眠,将生物的名称与其休眠联系起来


我还想知道什么是合适的方法,这样用户就可以改变攻击方法的效果,就像你用更好的装备击打生物一样。

帝力和貂是一种驯服的动物。它们是实例,而不是类

因此,您需要一个能够容纳不同属性的类

另外,假设麻木是健康或精力,我不确定为什么攻击功能会影响自身。实例不应该攻击其他对象吗

class tame_dilo:

    torpor = 250

    def __init__(self, name, effect):
        self.name = name
        self.effect = effect

    def attack(self):
        self.torpor = self.torpor - self.effect

dilo = tame_dilo('dilo', 25)

dilo.attack()
print(dilo.torpor)

class tame_sable(tame_dilo):
    torpor = 500

sable = tame_sable('sable', 25)

sable.attack()
print(sable.torpor)
现在创建命名实例

class Tame:

    def __init__(self, name, effect, torpor):
        self.name = name
        self.effect = effect
        self.torpor = torpor

    def attack(self, other):
        other.torpor -= self.effect
要更改驯服的效果,只需更新它

dilo = Tame('dilo', 25, 250)
sable = Tame('sable', 25, 500)
dilo.attack(sable)
print(sable.torpor)

所有的
tame\u dilo
都有相同的
torpor
。如果创建多个实例,它们都共享一个值。换句话说,攻击一个,影响到所有人。你应该在
\uuuu init\uuuuu
中定义它,除非你想要,否则我尝试用init方法定义tropor和effect,但是我遇到了一个错误,所以我决定创建不同的类,这样我可以改变延迟,然后使用继承来保存一些代码,错误是什么?你仍然可以使用继承,但我看不出有什么理由这样做。您所做的只是给出一个不同的值,而不是覆盖任何类行为。换言之,只需为TroporW使用不同的参数值,在python oop中输入的正确方法是什么,我四处查看了一下,但我有点困惑,如果我希望用户将效果值更改百分之多少?我的意思是,我希望能够输入一个特定的值,然后乘以
1+百分比
dilo.effect += 10