国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Python的類變量和對象變量聲明解析

2019-11-14 17:20:56
字體:
供稿:網(wǎng)友

  Python的類和C++一樣,也都是存在兩種類型的變量,類變量和對象變量!前者由類擁有,被所有對象共享,后者由每個對象獨有。這里我主要想討論一下他們的聲明辦法。

 

  首先說的是對象變量:

    只要是聲明在類的語句塊中,且沒有"self."前綴的變量都是類變量,且類變量是被所有對象共享的。

  注意紅字部分,如果聲明在類的方法的語句塊中,那么就是局部變量了!比如下面這個例子:

 1 #!/usr/bin/env python 2 # -* - coding: UTF-8 -* - 3 #Function: Use the class var 4  5 class Person: 6     cvar = 1 7     def sayHi(self): 8       fvar = 1 9 10 PRint Person.cvar11 print Person.fvar

  那個cvar就是屬于Python類的變量,而那個fvar就是方法sayHi()中的局部變量,第11條語句那里就會報錯!

 

  接下來我們再來討論一下對象變量的聲明方法:

    在類的方法的語句塊中聲明的以“self.”開頭的變量都是對象變量,由對象獨有!

  比如下面這個例子:

 1 #!/usr/bin/env python 2 # -* - coding: UTF-8 -* - 3 #Function: Use the object var 4  5 class Person: 6     def haveName(self): 7       self.name = 'Michael' 8     def sayName(self): 9       print self.name10 11 def main():12     p = Person()13 14     p.haveName()15     p.sayName()16 17 main()

  這里在haveName()方法中聲明了一個對象變量,然后再在sayName()方法中調(diào)用。然后主程序中就會輸出了!

  不過建議將對象變量聲明在__init__()方法中,因為對象一被創(chuàng)建的時候即會調(diào)用這個方法,否則的話,比如上面那個例子,如果我先調(diào)用sayName()的話,那么就會出錯,說對象實例還沒有name這個屬性!

 

  最后還想說的一點的就是,Python中沒有private public這些關(guān)鍵字來標(biāo)明類的變量或者方法的訪問權(quán)限,但是可以通過在變量或者方法的前面加上"__"來表明這個成員是被類私有的,不能在外部調(diào)用,比如下面這個例子:

 1 #!/usr/bin/env python 2 # -* - coding: UTF-8 -* - 3 #Function: Use the private var and func 4  5 class Person: 6     __count = 0            #這個變量是私有數(shù)據(jù)成員,只能被類的方法訪問,是屬于類的 7     def get(self): 8       return Person.__count 9     def __pri(self):10       print 'Yes'11 12 p = Person()13 print p.get()14 15 p.__pri()16 print p.__count

  比如這里的類變量__count就是類私有的,只能被類的函數(shù)成員調(diào)用(13行),而在類外面調(diào)用(16行)就是錯誤的!還有那個函數(shù)成員__pri()也是私有的,在類外面直接調(diào)用(15行),也是錯誤的!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 贡山| 大冶市| 金乡县| 凌源市| 屏山县| 车险| 漾濞| 恩施市| 景泰县| 禹州市| 通渭县| 嘉善县| 平顶山市| 皋兰县| 安顺市| 会泽县| 营口市| 桦川县| 临沭县| 河曲县| 嵊泗县| 余庆县| 麦盖提县| 剑阁县| 乾安县| 南岸区| 墨竹工卡县| 新建县| 汶川县| 安康市| 彩票| 饶河县| 静海县| 塘沽区| 辛集市| 桦甸市| 义马市| 宜黄县| 平安县| 南昌县| 奉化市|