有點意思,本來我是學習java的。總所周知,java也有構造函數,而python在面向對象的概念中,也有構造函數。它就是 __init__(self) 方法。
其實類似於__init__()這種方法,其實還有很多。類似__del__(self) ... __new__(cls,*args,**kwd) 等等。它們被成為 python的常用內置方法。
下面開始介紹一下我對 __init__()的理解:
class A(object): def __init__(self,name): self.name = name def getName(self): return 'A'+self.name a = A('hello') print a.getName()
當我們執行
a = A('hello')
可以理解為:
a=object.__new__(A) A.__init__(a,'hello')
也就是說,當我們初始化一個對象的時候,首先執行的不是__init__()方法,而是__new__()