摘要:以下的區(qū)別有意義么如果你需要創(chuàng)建很多實例,這兩種風(fēng)格在表現(xiàn)和空間要求上有什么區(qū)別么當(dāng)你閱讀代碼的時候,你是否會考慮這兩種風(fēng)格的重要區(qū)別除了表現(xiàn)上的考慮,這邊有一個重要的語義上的不同。用實例屬性設(shè)置的實例中,實例有可能被多個對象引用。
以下的區(qū)別有意義么?
class?A(object): ? ? foo?=?5? ?#?some?default?value
Vs
class?B(object):? ? def?__init__(self,?foo=5): ? ? ? ? ?????self.foo?=?foo
如果你需要創(chuàng)建很多實例,這兩種風(fēng)格在表現(xiàn)和空間要求上有什么區(qū)別么?當(dāng)你閱讀代碼的時候,你是否會考慮這兩種風(fēng)格的重要區(qū)別?
除了表現(xiàn)上的考慮,這邊有一個重要的語義上的不同。在類屬性的那個例子中,只有一個對象被引用。用實例屬性設(shè)置的實例中,實例有可能被多個對象引用。比如說:
>>>?class?A:?foo?=[ ] >>>?a,?b?=?A(),?A() >>>?a.foo.append(5) >>>?b.foo [5] >>>?class?A: ...? def?__init__(self):?self.foo?=?[ ] >>>?a,?b?=?A(),?A() >>>?a.foo.append(5) >>>?b.foo? ? []
原文鏈接:Python: Difference between class and instance attributes
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38168.html
摘要:以下的區(qū)別有意義么如果你需要創(chuàng)建很多實例,這兩種風(fēng)格在表現(xiàn)和空間要求上有什么區(qū)別么當(dāng)你閱讀代碼的時候,你是否會考慮這兩種風(fēng)格的重要區(qū)別除了表現(xiàn)上的考慮,這邊有一個重要的語義上的不同。用實例屬性設(shè)置的實例中,實例有可能被多個對象引用。 以下的區(qū)別有意義么? class?A(object): ? ? foo?=?5? ?#?some?default?value Vs class?B(ob...
摘要:不像其他屬性,描述符在類級別上創(chuàng)建。當(dāng)所有者類被定義時,每個描述符對象都是被綁定到一個不同的類級別屬性的描述符類實例。這必須返回描述符的值。此外,描述符對有一個方便的響應(yīng)和請求格式。 注:原書作者 Steven F. Lott,原書名為 Mastering Object-oriented Python __getattribute__()方法 __getattribute__()方法是...
摘要:同時,有多個類級別的靜態(tài)構(gòu)造函數(shù)的方法。這個累贅,無論如何,是被傳遞到每個單獨的對象構(gòu)造函數(shù)表達(dá)式中。我們可能只有幾個特定的擔(dān)憂,提供額外關(guān)鍵字參數(shù)給構(gòu)造函數(shù)。 注:原書作者 Steven F. Lott,原書名為 Mastering Object-oriented Python 沒有__init__()的無狀態(tài)對象 下面這個示例,是一個簡化去掉了__init__()的類。這是一個常見...
摘要:如果還是沒有找到,就會使用父類中的元類來創(chuàng)建類。元類通常用于處理比較復(fù)雜的情況。這是因為使用了元類,它會將中定義的字段轉(zhuǎn)換成數(shù)據(jù)庫中的字段。中所有數(shù)據(jù)類型都是對象,它們要么是類的實例要么是元類的實例。 原文地址:what is metaclass in Python?我的簡書地址::nummy 類即對象 在理解元類之前,需要先掌握Python中的類,Python中類的概念與SmallT...
摘要:第一是在對象生命周期中初始化是最重要的一步每個對象必須正確初始化后才能正常工作。第二是參數(shù)值可以有多種形式。基類對象的方法對象生命周期的基礎(chǔ)是它的創(chuàng)建初始化和銷毀。在某些情況下,這種默認(rèn)行為是可以接受的。 注:原書作者 Steven F. Lott,原書名為 Mastering Object-oriented Python __init__()方法意義重大的原因有兩個。第一是在對象生命...
閱讀 1264·2021-09-23 11:51
閱讀 1370·2021-09-04 16:45
閱讀 626·2019-08-30 15:54
閱讀 2076·2019-08-30 15:52
閱讀 1594·2019-08-30 11:17
閱讀 3098·2019-08-29 13:59
閱讀 2010·2019-08-28 18:09
閱讀 381·2019-08-26 12:15