我正在做一个愚蠢的小游戏来学习Python,但在用init创建一个妖精生物时遇到了问题

这是通用生物类的构造函数

class Creature(object):
    def __init__(self,str,dex,wis,n):


这是对它的调用:

goblin = Creature(randint(1,2),randint(1,2),(randint(1,2),"Goblin"))


这是我得到的错误

TypeError: __init__() takes exactly 5 arguments (4 given)


同样奇怪的是,我以几乎相同的方式创建了玩家生物,但没有错误

player = Player(str,dex,wis,name)


PlayerCreature的子类

最佳答案

您已将第三个参数指定为元组:

goblin = Creature(randint(1,2),randint(1,2),(randint(1,2),"Goblin"))


我假设您想将此分开,所以只需删除括号即可:

goblin = Creature(randint(1,2),randint(1,2),randint(1,2),"Goblin")


第五个参数是self,它会自动调用。

关于python - Python __init __(a,b,c,d)无法识别“自我”作为参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16257756/

10-11 20:42