本篇文章給大家分享的是有關(guān)python如何實(shí)現(xiàn)共享類(lèi)的變量,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
問(wèn)題:
python類(lèi)對(duì)象A,先實(shí)例化一個(gè)A對(duì)象的實(shí)例b,接著給A對(duì)象添加一個(gè)類(lèi)共享變量xxx,再實(shí)例化一個(gè)c,請(qǐng)問(wèn)b 和c都有變量xxx嗎
解答:
python類(lèi)共享變量,是不需要實(shí)例化就可以調(diào)用的, 比如類(lèi)A有一個(gè)XXX的類(lèi)共享變量, 直接A.xxx就可以調(diào)用
第一步:b在實(shí)例化的時(shí)候類(lèi)A中沒(méi)有共享變量xxx,這個(gè)時(shí)候?qū)嵗齜是沒(méi)有這個(gè)變量
第二步:給類(lèi)A 添加一個(gè)類(lèi)共享變量XXX, 添加完成后,會(huì)自動(dòng)給類(lèi)A 已生成的實(shí)例添加變量XXX ,所以b實(shí)例在A添加共享變量XXX后,也會(huì)有變量XXX
第三步:最后實(shí)例化c的時(shí)候類(lèi)A本來(lái)已經(jīng)有類(lèi)共享變量xxx,所以c實(shí)例也會(huì)有變量xxx
結(jié)論:實(shí)例b c都會(huì)有變量xxx
寫(xiě)段代碼驗(yàn)證下
#coding=utf-8 class A(): pass b = A() print(dir(b),"b實(shí)例 ,共享變量添加前") A.xxx=10 c = A() print(dir(b),"b實(shí)例 ,共享變量添加后") print(dir(c),"b實(shí)例 ")