亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

舉例講解Python面相對象編程中對象的屬性與類的方法

2020-01-04 17:50:31
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python面相對象編程中對象的屬性與類的方法,類和對象以及方法這些都是面相對象的編程語言所具有的基礎內容,需要的朋友可以參考下
 

python 對象的屬性
進入正題,來看一個實例來了解python中類,對象中公有屬性,私有屬性及局部變量,全局變量的區別.

root@10.1.6.200:~# cat object.py 
#!/usr/bin/env python#coding:utf8 class Dave():  var1 = "class atribute,public atrribute var1" #類屬性,公有屬性var1  __var2 = "class self atribute __var2"  #類的私有屬性__var2   def fun(self):    self.var2 = "object public atrribute var2" #對象的公有屬性var2    self.__var3 = "object self atrribute __var3" #對象的私有屬性__var3    var4 = "Function of the local variable var4" #函數fun的局部變量     def other(self):    print self.__var3

 

根據上面代碼后面加入以下代碼可以實例化一個對象及獲取類公有屬性.

he = Dave()    #實例化一個對象heprint he.var1   #從實例中獲取類的公有屬性print Dave.var1  #直接從類中獲取公有屬性
root@10.1.6.200:~# ./object.py 
class atribute,public atrribute var1class atribute,public atrribute var1

類的私有屬性不能被類或對象直接調用

he = Dave()print Dave.__var2print he.__var2
root@10.1.6.200:~# ./object.py 
Traceback (most recent call last): File "./object.py", line 19, in <module>  print Dave.__var2AttributeError: class Dave has no attribute '__var2'

但可以通過方法間接調用.

class Dave():  var1 = "class atribute,public atrribute var1" #類屬性,公有屬性var1  __var2 = "class self atribute __var2"  #類的私有屬性__var2     def other(self):    print Dave.__var2    he = Dave()he.other()
root@10.1.6.200:~# ./object.py 
class self atribute __var2

獲取類方法中的對象的公有屬性,需要先通過對象執行類中的方法.并通過對象調用該屬性.

he = Dave()liu = Dave()he.fun()print he.var2print liu.var2
root@10.1.6.200:~# ./object.py 
object public atrribute var2Traceback (most recent call last): <span></span>       #對象liu由于沒有調用fun方法所有就沒有該屬性.File "./object.py", line 20, in <module>  print liu.var2AttributeError: Dave instance has no attribute 'var2'

對象的私有屬性和類的私有屬性類似,也不能被類或對象直接調用

he = Dave()he.fun()print he.__var3
root@10.1.6.200:~# ./object.py 
Traceback (most recent call last): File "./object.py", line 18, in <module>  print he.__var3AttributeError: Dave instance has no attribute '__var3'

局部變量也不能被對象直接調用,可以在函數內部使用.

he = Dave()he.fun()print he.var4
root@10.1.6.200:~# ./object.py 

 

Traceback (most recent call last): File "./object.py", line 18, in <module>  print he.var4AttributeError: Dave instance has no attribute 'var4'
  def fun(self):    self.var2 = "object public atrribute var2" #對象的公有屬性var2    self.__var3 = "object self atrribute __var3" #對象的私有屬性__var3    var4 = "Function of the local variable var4" #函數fun的局部變量    print var4       #可以在函數內部直接打印,只在該函數內有用    print self.__var3 he = Dave()he.fun()
root@10.1.6.200:~# ./object.py 
Function of the local variable var4object self atrribute __var3

那么var4和self._var3有什么區別呢.目前看2個都在外部使用不了.下面在定義一個函數other調用.

  def fun(self):    self.var2 = "object public atrribute var2" #對象的公有屬性var2    self.__var3 = "object self atrribute __var3" #對象的私有屬性__var3    var4 = "Function of the local variable var4" #函數fun的局部變量    print var4       #一個函數的局部變量在另外一個函數是訪問不到的    print self.__var3     def other(self):    print var4    print self.__var3 he = Dave()he.fun()print "#"*100he.other()
root@10.1.6.200:~# ./object.py 
Function of the local variable var4object self atrribute __var3####################################################################################################Traceback (most recent call last):   #會認為var4是全局變量打印.定義全局變量可在class 頭加入 var4 = "global" File "./object.py", line 22, in <module>  he.other() File "./object.py", line 16, in other  print var4NameError: global name 'var4' is not defined
#!/usr/bin/env python#coding:utf8var4 = "global"            #定義var4為全局變量class Dave():  var1 = "class atribute,public atrribute var1" #類屬性,公有屬性var1  __var2 = "class self atribute __var2"  #類的私有屬性__var2   def fun(self):    self.var2 = "object public atrribute var2" #對象的公有屬性var2    self.__var3 = "object self atrribute __var3" #對象的私有屬性__var3    var4 = "Function of the local variable var4" #函數fun的局部變量    print var4    print self.__var3     def other(self):    print var4    print self.__var3       #可調用私有屬性,前提是先調用fun he = Dave()he.fun()print "#"*100he.other()
root@10.1.6.200:~# ./object.py 
Function of the local variable var4object self atrribute __var3####################################################################################################globalobject self atrribute __var3

python 類的方法
python類中的方法:公有方法,私有方法,類方法,靜態方法.

下面通過一個實例了解它們之間的區別:

#!/usr/bin/env python#coding:utf8class Dave():  name = "python"   def fun1(self):        #定義公有方法    print self.name    print "i am public method"   def __fun2(self):       #定義私有方法    print self.name    print "i am self method"

先來看公有方法和私有方法,加入以下代碼輸出

root@10.1.6.200:~# ./method.py    #直接調用對象公有方法沒有問題
pythoni am public method

私有方法和私有屬性一樣是被保護起來,不能直接調用對象的私有方法,但可以間接調用.

#!/usr/bin/env python#coding:utf8class Dave():  name = "python"   def fun1(self):        #定義公有方法    print self.name    print "i am public method"    self.__fun2()   def __fun2(self):       #定義私有方法    print self.name    print "i am self method" he = Dave()he.fun1()
root@10.1.6.200:~# ./method.py 
pythoni am public methodpythoni am self method

公有屬性是可以被類調用,但是公有方法是不可以被類直接調用.需要實例化對象調用.如果想一個方法被類直接調用的話,就需要轉換,變成一個類方法.變成類方法有2種,比較簡單的可以加裝飾器.

  @classmethod  def classFun(self):      #定義類方法    print self.name    print "i am class method" Dave.classFun()
root@10.1.6.200:~# ./method.py 
pythoni am class method

另一個方法比較麻煩,需要定義一個新的函數,以及使用classmethod方法轉換函數為類方法.當然調用也需要使用新的該函數名字.

  def classFun(self):      #定義類方法    print self.name    print "i am class method"   classnewFun = classmethod(classFun)  Dave.classnewFun()       #被轉換后的是一個類方法,原來classfun還是一個普通方法
root@10.1.6.200:~# ./method.py 
pythoni am class method

靜態方法在使用中和類方法一樣,也是為了讓類中直接調用,區別定義時不加self.

  @staticmethod  def staticFun():       #d定義靜態方法    print Dave.name #注意不加self,直接打name也不行,會認為調用全局變量,需要使用類型加屬性.    print "i am static method" Dave.staticFun()
oot@10.1.6.200:~# ./method.py 
pythoni am static method

同樣也可以通過一個函數調用

  def staticfun():       #定義靜態方法    print Dave.name    print "i am static method"   staticnewFun = staticmethod(staticFun) Dave.staticnewFun()
root@10.1.6.200:~# ./method.py 
pythoni am static method

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91香蕉国产在线观看| 久久久久久69| 免费不卡在线观看av| 岛国av午夜精品| 国产香蕉97碰碰久久人人| 亚洲高清久久网| 欧美日韩亚洲高清| 亚洲自拍小视频| 最近2019中文字幕大全第二页| 97视频在线免费观看| 亚洲偷熟乱区亚洲香蕉av| 亚洲视频自拍偷拍| 在线电影av不卡网址| 色播久久人人爽人人爽人人片视av| 亚洲欧洲在线看| 国自产精品手机在线观看视频| 欧美国产中文字幕| 欧美疯狂性受xxxxx另类| 96sao精品视频在线观看| 久久综合伊人77777尤物| 亚洲精品中文字| 91欧美精品成人综合在线观看| 亚洲成人精品视频| 色视频www在线播放国产成人| 日韩国产精品亚洲а∨天堂免| 在线播放国产一区中文字幕剧情欧美| 久久影院在线观看| 亚洲天堂av在线免费观看| 国产剧情久久久久久| 久久免费视频网站| 亚洲国产福利在线| 国产精品高潮呻吟久久av黑人| 成人激情视频在线| 久久久久国产精品免费网站| 久久久www成人免费精品| 国产视频精品久久久| 日韩免费视频在线观看| 精品国产乱码久久久久久虫虫漫画| 精品爽片免费看久久| 国产欧美最新羞羞视频在线观看| 亚洲精品wwww| 91sa在线看| 韩曰欧美视频免费观看| 狠狠色噜噜狠狠狠狠97| 欧美大学生性色视频| 色天天综合狠狠色| 91久久久久久国产精品| 亚洲成人精品在线| 一区二区三区精品99久久| 国产乱人伦真实精品视频| 国产精品欧美一区二区| 国产精品免费久久久久久| 91高清视频免费| 欧美黑人极品猛少妇色xxxxx| 亚洲色图狂野欧美| 亚洲国产日韩欧美在线99| 国产主播在线一区| 精品久久久91| 国产一区二区视频在线观看| 亚洲精品国产精品久久清纯直播| 97色在线观看免费视频| 亚洲国产中文字幕在线观看| 国产综合在线观看视频| 欧美孕妇与黑人孕交| 国产精品99久久久久久久久久久久| 亚洲品质视频自拍网| 亚洲国产精彩中文乱码av| 成人a在线视频| 97视频色精品| 欧美日产国产成人免费图片| 欧美日韩综合视频网址| 免费97视频在线精品国自产拍| 最近中文字幕mv在线一区二区三区四区| 亚洲成人激情图| 亚洲精品免费一区二区三区| 欧美黄色www| 米奇精品一区二区三区在线观看| 精品国产美女在线| 亚洲欧美国产精品久久久久久久| 久久不射热爱视频精品| 韩国欧美亚洲国产| 欧美二区乱c黑人| 久久久av一区| 欧美精品第一页在线播放| 亚洲成人教育av| 亚洲国产欧美自拍| 成人激情电影一区二区| 久久亚洲私人国产精品va| 欧美日韩在线影院| 成人免费高清完整版在线观看| 亚洲加勒比久久88色综合| 久久久久亚洲精品成人网小说| 中文字幕国产精品| 国产精品成熟老女人| 性欧美视频videos6一9| 亚洲国产精品成人va在线观看| 亚洲国产一区二区三区在线观看| 欧美电影在线免费观看网站| 九九精品视频在线观看| 亚洲久久久久久久久久久| 欧美精品久久久久久久免费观看| 欧美中文在线观看国产| 国产亚洲在线播放| 亚洲无线码在线一区观看| 欧美大胆在线视频| 亚洲大胆美女视频| 秋霞成人午夜鲁丝一区二区三区| 成人黄色影片在线| 国产精品久久久久免费a∨| 久久91亚洲精品中文字幕奶水| www.久久久久| 久久成年人视频| 日韩中文视频免费在线观看| 日韩黄色av网站| 亚洲视屏在线播放| 亚洲精品一区中文字幕乱码| 久久久久久噜噜噜久久久精品| 国产精品一区二区三区在线播放| 中文字幕久久精品| 日韩免费看的电影电视剧大全| 91在线观看免费网站| 亚洲国产精品成人va在线观看| 日本不卡免费高清视频| 亚洲精品美女免费| 97视频在线观看免费高清完整版在线观看| 欧美日韩另类视频| 国产亚洲精品美女| 欧美电影院免费观看| 91精品国产色综合久久不卡98| 日韩av网站在线| 这里只有精品在线观看| 免费不卡欧美自拍视频| 久久精品国产亚洲| 欧美激情视频给我| 国产主播欧美精品| 欧美激情高清视频| 高清欧美性猛交xxxx黑人猛交| 日韩福利伦理影院免费| 日韩免费看的电影电视剧大全| 久久伊人精品视频| 色婷婷亚洲mv天堂mv在影片| 亚洲自拍中文字幕| 国产成人精品免费久久久久| 国产自产女人91一区在线观看| www国产精品视频| 久久亚洲一区二区三区四区五区高| 欧美大片第1页| 成人欧美一区二区三区在线湿哒哒| 一道本无吗dⅴd在线播放一区| 久久在线免费观看视频| 久久久久久久久综合| 91在线免费观看网站| 一区二区三区精品99久久| 亚洲久久久久久久久久| 亚洲va码欧洲m码| 亚洲激情视频网| 色偷偷888欧美精品久久久| 精品久久久国产| 午夜精品国产精品大乳美女| 欧美激情第一页xxx| 国精产品一区一区三区有限在线| 亚洲第一视频网站| 午夜精品视频在线| 日本久久久久久|