2013-04-27 20 views
1

我正在做一個愚蠢的小遊戲來學習Python,我有一個問題與初始化創建一個地精生物Python的__init __(A,B,C,d)不承認「自我」作爲參數

這裏的通用生物類的構造函數

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

+0

感謝您的優秀和迅速解答大家! – Pinwheeler 2013-04-27 23:13:40

回答

5

你給你的第三個參數作爲元組:

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

我假設你想要這個separ吃,所以只是刪除括號:

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

第五個參數是self,它被自動調用。

2

它無關,與self你有四個PARAMS和傳遞三個:

randint(1,2), 
randint(1,2), 
(randint(1,2),"Goblin") 
2

你有括號在你的最後2個參數傳遞給了Creature構造。這被解釋爲一個元組(單個參數)而不是2個獨立的參數。

相關問題