在创建对象时遇到问题

2024-09-30 10:42:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个程序,用户可以在其中学习一些预定义的技能,并在以后更改为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)

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


Tags: 对象nameself列表定义globalappendattacks

热门问题