色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

python - class 類的問題

瀏覽:98日期:2022-09-07 08:19:40

問題描述

class C: count=0 a=C()b=C()c=C()print(a.count)print(b.count)print(c.count)c.count+=10print(c.count)print(a.count)print(b.count)print(C.count)C.count+=100print(a.count)print(b.count)print(c.count)

0001000010010010

為什么后來a.count b.count的值都是100 而c.count的值是10

問題解答

回答1:

類屬性 相等于Java中的靜態(tài)變量,屬于類。因?yàn)槟阍谶@里 c.count+=10定義了c 的實(shí)例屬性。所以 print(c.count) 為10

回答2:

因?yàn)閏.count+=10 相當(dāng)于給c這個(gè)實(shí)例對象動態(tài)的加了一個(gè)實(shí)例屬性,打印c.count的時(shí)候會打印出實(shí)例屬性而不是類屬性

In [1]: class C: ...: c= 10 ...:In [2]: c = C()In [3]: c.cOut[3]: 10In [4]: c.c = 1000In [5]: c.__dict__Out[5]: {’c’: 1000}In [6]: c.__class__.__dict__Out[6]: {’__doc__’: None, ’__module__’: ’__main__’, ’c’: 10}In [7]: c.__class__.cOut[7]: 10In [8]:回答3:

可以一步步看。

首先實(shí)例化三個(gè)C的類對象。打印a, b, c的count值。

這里涉及到一個(gè)屬性的查找順序。首先,查找實(shí)例是否有count值,發(fā)現(xiàn)找不到,則會查找上一級。實(shí)例的上一級是類,發(fā)現(xiàn)類屬性中有count,則輸出這里的count。

c.count += 10原本c.count引用的是C.count,但現(xiàn)在給它賦了一個(gè)新值,就相當(dāng)于c實(shí)例有了count這個(gè)屬性。打印a, b, c, C的count值。此時(shí)實(shí)例c已經(jīng)有了自己的count值。

C.count += 100改變類C的count值。c有自己的count值,a, b依然引用C的count值。

大概就是這個(gè)樣子。

回答4:

一句話:類的靜態(tài)變量,當(dāng)實(shí)例對其進(jìn)行賦值操作,其實(shí)是對實(shí)例動態(tài)添加屬性,對靜態(tài)屬性不會有任何影響,當(dāng)靜態(tài)屬性和實(shí)例屬性沖突時(shí),實(shí)例的訪問的順序優(yōu)先級為:實(shí)例-》類

https://segmentfault.com/a/11...

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产视频久久久久 | 亚洲欧美日韩另类在线 | 国产高清精品一级毛片 | 日韩欧美二区 | 91香蕉国产线在线观看免费 | 美女在线看永久免费网址 | 国亚洲欧美日韩精品 | 99久久成人 | 亚洲视频一区在线观看 | 在线观看自拍视频 | wwwxxx欧美| 欧美大片一区 | 欧美特黄一级 | 国产精品黄 | 不卡一级毛片免费高清 | 国产精品理论片在线观看 | 久久er热在这里只有精品85 | 色射网 | 亚洲自拍在线观看 | 日本韩国一级片 | 免费国产a国产片高清 | 综合欧美日韩一区二区三区 | 亚欧国产 | 一级毛片区| 欧洲女同互慰在线视频 | 久久久亚洲精品蜜桃臀 | 在线观看一区 | 亚洲成人h | 国产视频手机在线 | 爱福利极品盛宴 | 久久成人国产 | 日本免费高清视频二区 | 日韩精品一区二三区中文 | 成人毛片1024你懂的 | 美女黄色在线观看 | 欧美老妇免费做爰视频 | 亚洲高清中文字幕一区二区三区 | 日韩视频欧美视频 | 亚洲免费视频在线观看 | 精品国产一区在线观看 | 亚洲欧美在线精品一区二区 |