class Team :
def __init__(self):
print "object instantiated"
创建Team类的对象
>>> obj = Team()
object instantiated
从obj
我可以访问Team类的成员。但为什么允许以下内容?
>>> y = obj.__init__()
object instantiated
这里提出了一些问题。
为什么obj
可以调用__init__()
,__init__()
就像其他方法一样?
每当调用__init__()
时,它都会创建一个对象(如果我错在这里也是正确的),那么y
是否应该拥有Team
的另一个实例?
答案 0 :(得分:2)
除了特殊用途之外,所有“魔法”(双下划线)方法都可以作为常规方法使用。 __init__
方法实际上并不创建对象实例,它只是在__new__
方法创建对象后初始化对象。 (请注意,__init__
不会返回任何内容,因此y
None
后y = obj.__init__()
将为{{1}}。