什么是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>
