蟒蛇:对象

蟒蛇:对象

问题描述:

class Team : 
    def __init__(self): 
     print "object instantiated" 

的实例创建的组类的一个对象,蟒蛇:对象

>>> obj = Team() 
object instantiated 

obj我可以访问Team类的成员。但为什么允许以下内容?

>>> y = obj.__init__() 
object instantiated 

这里提出一些问题。

  1. 为什么obj是能够调用__init__(),是__init__()就像另一种方法?

  2. 每当__init__()被调用时会创建一个对象(正确的,如果我错了这里),所以应该y持有的Team另一个实例?

+1

'init'初始化。它不同于C++/Java中的构造函数,请参阅http://*.com/questions/674304/pythons-use-of-new-and-init – jozefg 2013-03-21 05:14:01

+1

'y'将会变为None,因为'__init __()'会不按规格返回任何内容。 – sberry 2013-03-21 05:14:51

+2

[** Python __init__和自己他们做什么?**](http://*.com/questions/625083/python-init-and-self-what-do-they-do) – 2013-03-21 05:16:20

除了特殊用途之外,所有“魔术”(双下划线)方法都可以作为常规方法使用。 __init__方法实际上并不创建对象实例,它只是在__new__方法创建它之后初始化对象。 (请注意,__init__不返回任何内容,因此y将在y = obj.__init__()之后为None。)