有点意思,本来我是学习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__()