Python new() 方法
什么是new方法
__new__方法接受的参数虽然也是和__init__一样,但__init__是在类实例创建之后调用,而 __new__方法正是创建这个类实例的方法。 __new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前,在Python 中 存在于类里面的构造方法__init__()负责将类的实例化,而在__init__()启动之前,__new__()决定是否 要使用该__init__()方法,因为__new__()可以调用其他类的构造方法或者直接返回别的对象来作为本类 的实例。
class Bar(object):
pass
class Foo(object):
def __new__(cls, *args, **kwargs):
return Bar()
print(Foo())
print(Bar())
执行结果:
<__main__.Bar object at 0x000001B839B390F0> <__main__.Bar object at 0x000001B839B390F0>