我正在创建一个程序,用户可以在其中学习预定义的一些技能,并在以后更改为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)
只有最后定义的对象才是任何列表中唯一的对象,无论最后定义哪个对象(在定义每个对象后通过打印列表进行测试)。