python:对象的实例化

时间:2013-03-21 05:11:05

标签: python initialization

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

创建Team类的对象

>>> obj = Team()
object instantiated

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

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

这里提出了一些问题。

  1. 为什么obj可以调用__init__()__init__()就像其他方法一样?

  2. 每当调用__init__()时,它都会创建一个对象(如果我错在这里也是正确的),那么y是否应该拥有Team的另一个实例?

1 个答案:

答案 0 :(得分:2)

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