我正在做一个愚蠢的小游戏来学习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)
Player
是Creature
的子类 最佳答案
您已将第三个参数指定为元组:
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/