Python __init __(a,b,c,d)没有将"self"识别为参数

Pin*_*ler 1 python class init

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

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

class Creature(object):
    def __init__(self,str,dex,wis,n):
Run Code Online (Sandbox Code Playgroud)

这是对此的呼吁:

goblin = Creature(randint(1,2),randint(1,2),(randint(1,2),"Goblin"))
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

TypeError: __init__() takes exactly 5 arguments (4 given)
Run Code Online (Sandbox Code Playgroud)

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

player = Player(str,dex,wis,name)
Run Code Online (Sandbox Code Playgroud)

Player 是一个儿童班 Creature

Ter*_*ryA 5

您已将第三个参数作为元组给出:

goblin = Creature(randint(1,2),randint(1,2),(randint(1,2),"Goblin"))
Run Code Online (Sandbox Code Playgroud)

我假设你想把它分开,所以只需删除括号:

goblin = Creature(randint(1,2),randint(1,2),randint(1,2),"Goblin")
Run Code Online (Sandbox Code Playgroud)

第五个参数self是自动调用的.