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