日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python 的类变量和对象变量

發(fā)布時(shí)間:2023/12/19 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 python 的类变量和对象变量 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

python是一種解釋性的語言,任何變量可以在使用的時(shí)候才聲明以及定義,也可以在程序運(yùn)行的任何位置進(jìn)行聲明和定義新的變量。

class Man(object):
    #直接定義的類的變量,屬于類    
    #其中 gender, avg_height為基本數(shù)據(jù)類型,immutable
    #lis為列表類型,為mutable的
    gender = 'male'    
    avg_height = 1.75
    lis = ['hello', 'world']

    def __init__(self, name):
        self.name = name  #name在類的構(gòu)造函數(shù)中定義,是屬于對(duì)象的變量

   
a = Man('jason')
b = Man('tom')

#通過一個(gè)對(duì)象a訪問一個(gè)變量x,變量的查找過程是這樣的:
#先在對(duì)象自身的__dict__中查找是否有x,如果有則返回,否則進(jìn)入對(duì)象a所屬的類A的
#__dict__中進(jìn)行查找

#對(duì)象a試圖修改一個(gè)屬于類的 immutable的變量,則python會(huì)在內(nèi)存中為對(duì)象a
#新建一個(gè)gender變量,此時(shí)a就具有了屬于自己的gender變量
a.gender = 'female'

#對(duì)象b試圖修改一個(gè)mutable的變量,則python找到類Man的__dict__中的變量lis,
#由于lis是可以修改的,因此直接進(jìn)行修改,而不會(huì)給b新生成一個(gè)變量。類Man以及類Man
#的所有對(duì)象都公用這一個(gè)lis
b.lis = ['fuck', 'world']

print a.__dict__ #屬于a的變量,有 name, gender
print b.__dict__  #屬于b的變量,只有name
print Man.__dict__ #屬于類Man的變量,有 gender,avg_height,lis,但是不包括 name
#name是屬于對(duì)象的變量

Man.t = 'test' #此時(shí)Man的變量又多了t,但是對(duì)象a和b中沒有變量t。
#(這里可以看出,對(duì)象的變量和類的變量是分開的)

print a.gender  #female
print b.gender  #male

print a.lis #['fuck', 'world']
print b.lis #['fuck', 'world']

a.addr = '182.109.23.1' #給對(duì)象a定義一個(gè)變量,對(duì)象b和類Man中都不會(huì)出現(xiàn)(解釋性語言好隨性。。)


    

  需要注意,類的變量(屬性)和對(duì)象的變量(屬性)是“獨(dú)立”的,但在通過一個(gè)對(duì)象查找一個(gè)變量的時(shí)候,會(huì)現(xiàn)在改對(duì)象自身的__dict__中查找,如果找不到,則進(jìn)入該對(duì)象代表的類的__dict__中進(jìn)行查找。

  注意 mutable, immutable變量的區(qū)別!這會(huì)導(dǎo)致python是否會(huì)在內(nèi)存中為某對(duì)象新申請(qǐng)內(nèi)存定義該變量。

  可以在程序的任何位置給類或者對(duì)象定義新的變量

總結(jié)

以上是生活随笔為你收集整理的python 的类变量和对象变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。