在创建对象时遇到问题

时间:2017-06-07 16:28:05

标签: python python-3.x

我正在创建一个程序,用户可以在其中学习预定义的一些技能,并在以后更改为learned = True值。我想把已经学过的所有对象放到一个列表中,但是找不到收集所有对象的方法来对它们进行排序,并且如果有人可以提出建议,我会很感激。这是我目前使用类定义中的列表的策略,但是它没有正常工作,所以如果有人有更好的方法,我会很感激。 我的班级目前看起来像这样:

class attacks:
learned = False
def __init__(self,name,baseDMG,adMulti,apMulti,accuracy):
    self.name = name
    self.baseDMG = baseDMG
    self.adMulti = adMulti
    self.apMulti = apMulti
    self.accuracy = accuracy
    global adAbilities
    global apAbilities
    global mixedAbilities
    adAbilities = []
    apAbilities = []
    mixedAbilities = []
    if adMulti > 0 and apMulti > 0:
        mixedAbilities.append(self) 
    elif adMulti > 0:
        adAbilities.append(self) 
    elif apMulti > 0:
        apAbilities.append(self)

但是当我检查列表中的项目时,它只存储第二个列表中的一个对象而其他对象中没有,即使我已经创建了这些对象:

slash = attacks("slash",20,6,0,90)
smite = attacks("smite",20,0,6,90)
doubleStrike = attacks("doubleStrike",30,9,0,70)
blast = attacks("blast",30,0,9,70)
weaponThrow = attacks("weaponThrow",20,8,0,90)

只有最后定义的对象才是任何列表中唯一的对象,无论最后定义哪个对象(在定义每个对象后通过打印列表进行测试)。

0 个答案:

没有答案