我正在做一个愚蠢的小游戏来学习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的子类
发布于 2013-04-27 23:05:38
您已经将第三个参数作为元组给出:
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,它被自动调用。
发布于 2013-04-27 23:05:49
它与self无关--您有四个对角,并传递了三个:
randint(1,2),
randint(1,2),
(randint(1,2),"Goblin")发布于 2013-04-27 23:06:01
在Creature构造函数的最后2个args周围有括号。这被解释为一个元组(单个arg),而不是两个单独的arg。
https://stackoverflow.com/questions/16257756
复制相似问题