最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單分析python的類變量、實(shí)例變量

 更新時(shí)間:2019年08月23日 17:10:16   作者:不夜男人  
在本篇文章中小編給大家整理的是關(guān)于python類變量、實(shí)例變量的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。

1、類變量、實(shí)例變量概念

類變量:

類變量就是定義在類中,但是在函數(shù)體之外的變量。通常不使用self.變量名賦值的變量。類變量通常不作為類的實(shí)例變量的,類變量對于所有實(shí)例化的對象中是公用的。

實(shí)例變量:

實(shí)例變量是定義在方法中的變量,使用self綁定到實(shí)例上的變量,只是對當(dāng)前實(shí)例起作用。

2、訪問

類變量

在類的內(nèi)部和外部類變量都可以直接使用className.類變量的形式訪問。但是在類的內(nèi)部,也可以使用self.類變量來訪問,但是這個(gè)是用含義就不同了(后面使用代碼驗(yàn)證)。

實(shí)例變量

在類的內(nèi)部,實(shí)例變量self.實(shí)例變量的形式訪問;在類的外部使用對象名。實(shí)例變量的形式訪問。實(shí)例變量是綁定到一個(gè)實(shí)例上的變量,它只是屬于這個(gè)綁定的實(shí)力。而區(qū)別類變量的就是類變量是所有的來自用一個(gè)類的實(shí)例所共享。我們看到這里會(huì)有這樣的疑問!

如果說類變量對所有來自這個(gè)類的所有實(shí)例所共享,那么假如我一個(gè)實(shí)例去改變了這個(gè)類變量(假設(shè)使用這樣的操作object.類變量 = value)的值,那么對于其他的實(shí)例是不是都是可見的?

答案是否定的,下面驗(yàn)證。

class A(object):
  # 定義一個(gè)類變量,初值是10
  class_var = 10
  print id(class_var)
  def foo(self):
  print '在類中訪問類變量:A.class_var=', A.class_var
  print '在類中訪問實(shí)例變量: self.class_var=', self, self.class_var
 
  # 改變實(shí)例變量的值
  self.class_var = 40
  print '修改后訪問類變量:A.class_var=', A.class_var
  print '修改后訪問實(shí)例變量 self.class_var=',self, self.class_var
 
  # 這里的class_var和函數(shù)外面的class_var不是同一個(gè)東西,這是一個(gè)局部變量
  class_var = 20
  print id(class_var)
  print 'class_var=', class_var
 
     
  A.class_var = 15
  print 'A.class_var=', A.class_var
  print 'class_var=',class_var
  print 'self.class_var=',self.class_var
     
 
obj1 = A()
obj2 = A()
obj3 = A()
obj1.foo()
print A.class_var
print obj1.class_var
print obj2.class_var
print obj3.class_var

Output:

49964144
在類中訪問類變量:A.class_var= 10
在類中訪問實(shí)例變量: self.class_var= <__main__.A object at 0x0000000002FD2390> 10
修改后訪問類變量:A.class_var= 10
修改后訪問實(shí)例變量 self.class_var= <__main__.A object at 0x0000000002FD2390> 40
49963904
class_var= 20
A.class_var= 15
class_var= 20
self.class_var= 40
15
40
15
15

從上面運(yùn)行的結(jié)果分析:當(dāng)使用self.class_var形式訪問類變量的之后,如果修改self.class_var的值,可以發(fā)現(xiàn),類變量的值沒有變化;不放心我們在修改類變量的值,發(fā)現(xiàn)self.class_var的值也沒有受到影響。

從最后打印obj2和obj3這兩個(gè)都來自于一個(gè)類的實(shí)例中的類變量都是和修改后的類變量一樣,表示他們是共享類變量的。

3、總結(jié)

1、類變量可以使用className.類變量和self.類變量兩種方式訪問。
2、如果使用self.類變量的方式訪問并重新賦值后,這個(gè)變量就會(huì)成為實(shí)例變量和self綁定,實(shí)際上就變成了一個(gè)實(shí)例變量,實(shí)例變量會(huì)屏蔽掉類變量的值。
3、類變量是共享的,最好使用類名的方式來訪問類變量。
4、類變量通過sel訪問時(shí),就會(huì)被轉(zhuǎn)化成實(shí)力變量,被綁定到特定的實(shí)例上。
5、實(shí)例變量(self)的形式對類變量重新賦值后,類變量的值不會(huì)隨之變化。
6、實(shí)例變量對每一個(gè)對象是不可見的,每一個(gè)對象擁有著可能不同的值。

以上我們整理的知識(shí)點(diǎn)希望能夠幫助到大家,感謝大家對腳本之家的支持。

相關(guān)文章

  • 教你python制作自己的模塊的基本步驟

    教你python制作自己的模塊的基本步驟

    這篇文章主要介紹了python如何制作自己的模塊,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Python3 利用requests 庫進(jìn)行post攜帶賬號(hào)密碼請求數(shù)據(jù)的方法

    Python3 利用requests 庫進(jìn)行post攜帶賬號(hào)密碼請求數(shù)據(jù)的方法

    今天小編就為大家分享一篇Python3 利用requests 庫進(jìn)行post攜帶賬號(hào)密碼請求數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python空值填充為無的實(shí)現(xiàn)方法

    python空值填充為無的實(shí)現(xiàn)方法

    我們經(jīng)常會(huì)遇到數(shù)據(jù)集中存在空值的情況,本文主要介紹了python空值填充為無的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • python issubclass 和 isinstance函數(shù)

    python issubclass 和 isinstance函數(shù)

    這篇文章主要介紹了python issubclass 和 isinstance函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • python使用HTMLTestRunner導(dǎo)出餅圖分析報(bào)告的方法

    python使用HTMLTestRunner導(dǎo)出餅圖分析報(bào)告的方法

    這篇文章主要介紹了python使用HTMLTestRunner導(dǎo)出餅圖分析報(bào)告的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python實(shí)現(xiàn)制度轉(zhuǎn)換(貨幣,溫度,長度)

    Python實(shí)現(xiàn)制度轉(zhuǎn)換(貨幣,溫度,長度)

    這篇文章主要介紹了Python實(shí)現(xiàn)制度轉(zhuǎn)換(貨幣,溫度,長度),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python實(shí)現(xiàn)快速替換Word文檔中的關(guān)鍵字

    Python實(shí)現(xiàn)快速替換Word文檔中的關(guān)鍵字

    使用Python自動(dòng)化處理Word文檔可以幫助您提高效率,并減少手動(dòng)處理文檔所需的時(shí)間和精力,所以本文為大家準(zhǔn)備了Python快速替換Word文檔中的關(guān)鍵字的方法,希望對大家有所幫助
    2023-06-06
  • python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換

    python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換

    本文主要介紹了python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 基于python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    基于python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于python學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python 在函數(shù)上添加包裝器

    Python 在函數(shù)上添加包裝器

    這篇文章主要介紹了Python 如何在函數(shù)上添加包裝器,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07

最新評論

六盘水市| 晋城| 昂仁县| 甘谷县| 牙克石市| 江口县| 景洪市| 水城县| 临武县| 聂荣县| 惠水县| 万源市| 大英县| 通河县| 曲麻莱县| 湘乡市| 南靖县| 巢湖市| 平泉县| 南投县| 赤水市| 新安县| 北川| 封丘县| 永宁县| 梨树县| 兴业县| 奇台县| 将乐县| 德庆县| 岗巴县| 塘沽区| 衡山县| 贵定县| 青海省| 开封县| 洪雅县| 拉萨市| 辽宁省| 横山县| 利辛县|