python的類變量和成員變量用法實(shí)例教程
本文實(shí)例形式講解了python的類變量和成員變量用法,對于Python程序設(shè)計(jì)有一定的參考價(jià)值。分享給大家供大家參考。具體如下:
先看看下面這段代碼:
class TestClass(object):
val1 = 100
def __init__(self):
self.val2 = 200
def fcn(self,val = 400):
val3 = 300
self.val4 = val
self.val5 = 500
if __name__ == '__main__':
inst = TestClass()
print TestClass.val1
print inst.val1
print inst.val2
print inst.val3
print inst.val4
print inst.val5
這里,val1是類變量,可以由類名直接調(diào)用,也可以有對象來調(diào)用;
val2是成員變量,可以由類的對象來調(diào)用,這里可以看出成員變量一定是以self.的形式給出的,因?yàn)閟elf的含義就是代表實(shí)例對象;
val3不是成員變量,它只是函數(shù)fcn內(nèi)部的局部變量;
val4和val5也都不是成員變量,雖是以self.給出,但并沒有在構(gòu)造函數(shù)中初始化。
再看看下面的代碼(#號后面的是運(yùn)行結(jié)果):
inst1 = TestClass() inst2 = TestClass() print TestClass.val1 # 100 print inst1.val1 # 100 inst1.val1 = 1000 print inst1.val1 # 1000 print TestClass.val1 # 100 TestClass.val1 =2000 print inst1.val1 # 1000 print TestClass.val1 # 2000 print inst2.val1 # 2000 inst3 = TestClass() print inst3.val1 # 2000
可以發(fā)現(xiàn):python的類變量和C++的靜態(tài)變量不同,并不是由類的所有對象共享。類本身擁有自己的類變量(保存在內(nèi)存),當(dāng)一個(gè)TestClass類的對象被構(gòu)造時(shí),會將當(dāng)前類變量拷貝一份給這個(gè)對象,當(dāng)前類變量的值是多少,這個(gè)對象拷貝得到的類變量的值就是多少;而且,通過對象來修改類變量,并不會影響其他對象的類變量的值,因?yàn)榇蠹叶加懈髯缘母北?,更不會影響類本身所擁有的那個(gè)類變量的值;只有類自己才能改變類本身擁有的類變量的值。
希望本文所述實(shí)例對于大家理解和掌握Python的類變量和成員變量用法有所幫助。
相關(guān)文章
pytorch transform數(shù)據(jù)處理轉(zhuǎn)c++問題
這篇文章主要介紹了pytorch transform數(shù)據(jù)處理轉(zhuǎn)c++問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
完美處理python與anaconda環(huán)境變量的沖突問題
這篇文章主要介紹了完美處理Python與anaconda環(huán)境變量的沖突問題,對anaconda感興趣的同學(xué),可以參考下2021-04-04
基于python實(shí)現(xiàn)數(shù)組格式參數(shù)加密計(jì)算
這篇文章主要介紹了基于python實(shí)現(xiàn)數(shù)組格式參數(shù)加密計(jì)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python使用xlrd和xlwt批量讀寫excel文件的示例代碼
這篇文章主要介紹了Python使用xlrd和xlwt批量讀寫excel文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
linux環(huán)境下安裝pyramid和新建項(xiàng)目的步驟
這篇文章簡單介紹了linux環(huán)境下安裝pyramid和新建項(xiàng)目的步驟,大家參考使用2013-11-11
Python基礎(chǔ)之函數(shù)原理與應(yīng)用實(shí)例詳解
這篇文章主要介紹了Python基礎(chǔ)之函數(shù)原理與應(yīng)用,結(jié)合具體實(shí)例形式詳細(xì)分析了Python函數(shù)的定義、原理、參數(shù)、返回值、嵌套等相關(guān)概念與使用技巧,需要的朋友可以參考下2020-01-01
Python turtle實(shí)現(xiàn)貪吃蛇游戲
這篇文章主要為大家詳細(xì)介紹了Python turtle實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

