__new__:创建对象时调用,返回当前对象的一个实例相当于java里面的构造器差不多
__init__:创建完对象后调用,对当前对象的实例的一些初始化,无返回值
__init__:创建完对象后调用,对当前对象的实例的一些初始化,无返回值
如果重写了__new__而在__new__里面没有调用__init__那么__init__将不起作用。
测试1:
>>> class A(object):
def __init__(self):
print("in init")
def __new__(self):
print("in new")
>>> A()
in new
测试2:
class A(object):
def __new__(Class):
Object = super(A, Class).__new__(Class)
print "in New"
return Object
def __init__(self):
print "in init"
class B(A):
def __init__(self):
print "in B's init"
B()
>>>
in New
in B's init