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>

 

posted @ 2017-10-24 15:44  童小哥总是不开心。  阅读(3074)  评论(0编辑  收藏  举报