-1
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

4

1 回答 1

2

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

于 2013-03-21T05:14:56.553 回答