在类上调用python __init__

问题描述:

我有一个类(称为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

尝试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