Skip to main content
 首页 » 编程设计

Python __init__(a,b,c,d) 不识别 "self"作为参数

2025年05月04日10mq0036

我正在制作一个愚蠢的小游戏来学习 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 = 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,自动调用。