2016-01-12 49 views
-3

這裏是我的代碼調用Game_Events__init__不能調用函數的Python

class Game_Events(object): 
    def __init__(self, DoSetup): 
     if DoSetup == "yes": 
      print "Done" 

GE = Game_Events() 
GE.__init__("no") 

但是,當我過運行代碼我得到:

TypeError: __init__() takes exactly 2 arguments (1 given) 

我怎樣才能解決這個問題?

+4

'GE = Game_Events( 「無」)',你也可能給予DoSetup默認值'DoSetup = FALSE' –

+0

這可能會爲您提供有關init的詳細信息更好:http://stackoverflow.com/questions/8609153/why-do-we-use-init-in-python-classes – Panda

回答

4

Game_Events.__init__()被稱爲爲你,你不要直接調用它。它在您創建實例時調用:

Game_Events() # calls Game_Events.__init__(newly_created_instance) 

因爲您沒有將參數傳遞給該調用,所以事情會中斷。在'no'傳遞給呼叫:而對於只該類創建一個實例

GE = Game_Events('no') # calls Game_Events.__init__(newly_created_instance, 'no') 
0

初始化函數被調用。

試試這個:

class Game_Events(object): 
    def __init__(self, DoSetup): 
     if DoSetup == "yes": 
      print "Done" 

GE = Game_Events("no") 

GE = Game_Events("yes") # output will be yes