2011-05-25 46 views
0

我有一個類(稱爲Account)將a保存爲一個變量(比如說cur_class),我想初始化一個類的實例。我想在類上調用python __init__

cur_class.__init__() 

會工作,但它給我「結合的方法初始化()必須與帳戶例如被稱爲第一個參數(什麼都沒有代替)」。很顯然,我做錯了一切 - 任何人都可以指引我走向正確的方向嗎?

感謝, 理查德

+2

這是爲什麼?當您執行'our_class()'時,它會自動完成。 – 2011-05-25 14:13:21

+0

@ S.Lott - 我對python不是很大,並沒有意識到你可以簡單地在一個變量名之後添加一些括號來實例化。這在語言中並不常見。 – 2011-05-25 14:14:49

+2

@Richard:「這在語言中不常見」請不要假設事物並在Python上強加其他語言語法。這會導致更多的困惑,更難以回答問題。教程將爲您節省大量時間。 – 2011-05-25 14:18:03

回答

6

嘗試cur_class()。例如:

In [1]: class C(object): pass 
    ...: 

In [2]: cur_class = C 

In [3]: obj = cur_class() 

In [4]: obj 
Out[4]: <__main__.C object at 0x1953c50> 

稍長的解釋是Python classes are callable。調用一個類將返回一個新的實例。

+0

謝謝,這正是我之後的事情。 – 2011-05-25 14:13:03