python内置函数
__new__
''' __new__在__init__之前执行 ''' class A: def __init__(self): self.x = 1 print('in init function') def __new__(cls, *args, **kwargs): print('in new function') return object.__new__(A) a = A() print(a)
__call__
''' __call__,实例后触发 构造方法的执行是由创建对象触发的 ''' class Foo: def __init__(self): pass def __call__(self, *args, **kwargs): print('__call__') obj = Foo() # 执行 __init__ obj() # 执行 __call__