python中__new__的使用注意

wh7577發表於2021-09-11

python中__new__的使用注意

1、第一個引數cls是一個正在例項化的類。

若要獲取當前類的例項,則方法應在當前類的__new__()方法語句中呼叫當前類的父類的__new__()方法。舉例來說,如果當前類是直接從object繼承的,那麼當前類的__new__()方法返回的物件應該是:

class Foo(object):
    def __new__(cls,*args,**kwagrs):
        return object.__new__(cls,*args,**kwagrs)

2、對於任意新式類的__new__()方法,無法呼叫__new__()本身製造例項,因為這樣做會產生死迴圈。

class Bar(object):
    def __new__(cls,*agrs,**kwagrs):
        return Bar.__new__(Foo,*agrs,**kwagrs)

以上就是python中__new__的使用注意,希望對大家有所幫助。更多Python學習指路:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2480/viewspace-2828186/,如需轉載,請註明出處,否則將追究法律責任。

相關文章