在此介绍一下 __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