您好,登錄后才能下訂單哦!
本篇文章為大家展示了__init__和__new__的使用代碼怎么編寫,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
代碼如下:
#011.簡述面向對象中__new__和__init__區別
# __init__是當實例對象創建完成后被調用的,然后設置對象屬性的一些初始值。
# __new__是在實例創建之前被調用的,因為它的任務就是創建實例然后返回該實例,是個靜態方法。
class Book:
def __new__(cls, title):
if not hasattr(cls,"_ins"):
cls._ins=super().__new__(cls)
print('in __new__')
return cls._ins
def __init__(self, title):
print('in __init__')
super().__init__()
self.title = title
if __name__ == '__main__':
b = Book('The Spider Book')
b2= Book('The Flask Book')
print(id(b))
print(id(b2))
print(b.title)
print(b2.title)
#也就是,__new__在__init__之前被調用,__new__的返回值(實例)
#將傳遞給__init__方法的第一個參數,然后__init__給這個實例設置一些參數
上述內容就是__init__和__new__的使用代碼怎么編寫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。