蟒蛇:对象
问题描述:
class Team :
def __init__(self):
print "object instantiated"
的实例创建的组类的一个对象,蟒蛇:对象
>>> obj = Team()
object instantiated
从obj
我可以访问Team类的成员。但为什么允许以下内容?
>>> y = obj.__init__()
object instantiated
这里提出一些问题。
为什么
obj
是能够调用__init__()
,是__init__()
就像另一种方法?每当
__init__()
被调用时会创建一个对象(正确的,如果我错了这里),所以应该y
持有的Team
另一个实例?
答
除了特殊用途之外,所有“魔术”(双下划线)方法都可以作为常规方法使用。 __init__
方法实际上并不创建对象实例,它只是在__new__
方法创建它之后初始化对象。 (请注意,__init__
不返回任何内容,因此y
将在y = obj.__init__()
之后为None
。)
'init'初始化。它不同于C++/Java中的构造函数,请参阅http://*.com/questions/674304/pythons-use-of-new-and-init – jozefg 2013-03-21 05:14:01
'y'将会变为None,因为'__init __()'会不按规格返回任何内容。 – sberry 2013-03-21 05:14:51
[** Python __init__和自己他们做什么?**](http://*.com/questions/625083/python-init-and-self-what-do-they-do) – 2013-03-21 05:16:20