在此介绍一下 __init__ 和 __new__ 先后调用的区别
代码如下:
# __init__ 和 __new__的区别 # 通常在编代码时,__init__ 较为常见,但是__new__却很少使用。 # python中,类在实例化时,首先是调用__new__方法,创建出一个实例,然后再去调用__init__ 方法对该实例进行初始化操作。 #!/usr/bin/env python # -*- coding: utf-8 -*- class A(object): def __init__(self, *args, **kwargs): print 'call init' return super(A, self).__init__(*args, **kwargs) def __new__(cls, *args, **kwargs): print 'call new' return super(A, cls).__new__(cls, *args, **kwargs) a = A()
运行结果:
call new
call init