第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python 類繼承沒有給我單獨(dú)的列表實(shí)例

Python 類繼承沒有給我單獨(dú)的列表實(shí)例

慕虎7371278 2023-05-09 16:15:51
我不明白這是怎么回事。我有一個(gè)類“C”,它是“B”的子類。“B”有一個(gè)屬性“b”,它是類“A”的一個(gè)實(shí)例?!癆”有一個(gè)屬性,稱為“a”的列表。當(dāng)我初始化“C”的兩個(gè)不同實(shí)例時(shí),它們具有相同的“A”實(shí)例,這樣當(dāng)我附加到 Aa 時(shí),它會(huì)導(dǎo)致“C”的兩個(gè)實(shí)例都具有附加屬性“ba”。class A:    a = list()class B:    b = A()class C(B):    passone = C()two = C()one.b.a.append('one')one.b.a.append('two')two.b.a.append('three')print(one.b.a)print(two.b.a)運(yùn)行這段代碼打印出:['one', 'two', 'three']['one', 'two', 'three']顯然,one.ba 和 two.ba 指向同一個(gè)對(duì)象,而我本以為每次調(diào)用 C() 時(shí)都會(huì)初始化“A”的新實(shí)例。為什么會(huì)發(fā)生這種情況,我該如何解決?
查看完整描述

1 回答

?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是因?yàn)槟鷮?code>aand聲明b為類屬性而不是實(shí)例變量。您可以將類屬性視為該類的全局變量。所有對(duì)象的類屬性只能有一個(gè)值。

另一方面,實(shí)例變量對(duì)于類的每個(gè)實(shí)例都是唯一的。

總結(jié)一下:

class A:

? ? a = 'A'

? ??

? ? def __init__(self):

? ? ? ? self.b = 'B'


foo = A()

bar = A()


foo.a

>>> A


bar.a

>>> A


foo.b

>>> B


bar.b

>>> B


A.a = 'C'

foo.a

>>> C

bar.a

>>> C


foo.b = 'D'

bar.b

>>> B


查看完整回答
反對(duì) 回復(fù) 2023-05-09
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)