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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

类的属性、类的方法、类的内置方法

發布時間:2025/4/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类的属性、类的方法、类的内置方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

類的屬性

變量在類中稱為類的屬性,函數在類中稱為類的方法,類的屬性分為以下幾種:

(1) 公有屬性:在類中和類外都能調用的屬性,定義的時候與變量的定義一致,如 color = 'yellow'
(2) 私有屬性:不能在類外及被類以外的函數調用,定義的時候以雙下劃線開頭,如__color = 'yellow'

(3) 內置屬性: 由系統在定義類的時候默認添加的,定義的時候以前后雙下劃線構成,如 dict

#!/usr/bin/env python class People(object):color = 'yellow' # 定義類的公有屬性__age = 30 # 定義類的私有屬性def think(self):print self.__age # 只能在類里面調用私有屬性ren = People() print ren.color # 可以在類外面調用公有屬性 ren.think() print ren.__dict__ # 系統已經定義好了內置屬性,可以直接調用

類的方法

變量在類中稱為類的屬性,函數在類中稱為類的方法,類的方法分為以下幾種:

(1) 公有方法:在類中和類外都能調用的方法
(2) 私有方法:只能在類里面被調用,不能被類的外部調用,定義的時候要在前面加上雙下劃線,如 def __think()

備注:定義方法的時候后面都有一個self,如:def think(self);就是區別類方法和函數(不需要self),里面有self是作為函數的第一個參數

(3) 類方法:能被類直接調用的方法稱為類方法,但要通過 classmethod() 函數處理后才能被類直接調用
(4) 靜態方法:靜態方法相當于全局函數,可以被類直接調用,但要通過 staticmethod() 處理后才能被直接調用,注意靜態方法沒有 self 參數br/>區別:@classmethod與@staticmethod
前者是類方法,后者是靜態方法,共同點是都可以使用類的名字來調用這個方法。
不同點是兩種方法的定義不同,前者必須有個self參數,后者可以沒有參數,類方法也叫做動態方法,在調用類方法的時候,其他方法不會被加載到內存,調用靜態方法是,其他方法也會一起被加載到內存。
self就表示類的本身。
類方法里必須使用self作為參數,這樣才能被類識別為是自己的一個方法。
沒有self就是一個函數,這時類是不能調用它的,除非使用@staticmethod這個裝飾器,類才能調用它。

實例:

#!/usr/bin/env pythonclass People(object):color = 'yellow'__age = 30def __talk(self): # 定義私有方法,需要在前面添加雙下劃線print "I am talking with Tom"def test(self): # 定義公有方法,方法的定義和函數一樣,但是需要 self 作為第一個參數,表示執行對象本身self.__talk() # 在類的內部調用私有方法jack = People() jack.test() #!/usr/bin/env pythonclass People(object):color = 'yellow'__age = 30def test(self): # 定義公有方法print "Testing......"cm = classmethod(test) # 通過 classmethod 函數轉換成類方法jack = People() People.cm() # 公有方法是不可以通過類直接調用的,只能通過對象來調用,但轉換成類方法之后,就可以通過類直接調用 #!/usr/bin/env pythonclass People(object):color = 'yellow'__age = 30def test(): # 在類中定義方法如果沒有加 self 參數只能稱其為函數print "Testing......"sm = staticmethod(test) # 通過 staticmethod 函數轉換成靜態方法jack = People() People.sm() # 靜態方法可以通過類直接調用

可以參考以下代碼:

class People(object):color='yellow' #類的屬性__age=30 #私有屬性def A(self): #公有方法self.color='black'print 'I am a %s' %self.colordef test(self):self.A() #類里面調用print self.__age #調用私有屬性def __think(self):print 'this is private mathod'def call(self): #調用私有方法self.__think()@classmethod #只對下面的一個函數起作用def classMethod(self):print 'This is classMethod'@classmethoddef call_class(self): #動態函數調用類的屬性print self.colordef B(self): #通過動態方法對這個方法B不起作用,只能用實例化的類調用print 'B'@staticmethod #只對下面的一個函數起作用def staticMetod():print 'This is staticMethod'pe=People() pe.A() pe.test() pe.call() People.classMethod() People. call_class() People.staticMetod() pe.B() 結果: I am a black I am a black 30 this is private mathod This is classMethod yellow This is staticMethod B

類的內置方法

所謂內部類,就是在類的內部定義的類,主要的目的是為了更好的抽象現實世界

class People(object):color='yellow'class Chinese(object):print 'I am a chinese'name='test'#第一種方法: pe=People() jack=pe.Chinese() print jack.name#第二種方法調用屬性name1: print People.Chinese.name 結果: I am a chinese test test

實例:

class People(object):color='yellow'def __str__(self): #通過這個函數可以知道pe是做什么的,只能用return,不能用printreturn 'pe is People class'def __init__(self): #將類的屬性更改,調用的結果就是green,但是使用類調用屬性則不變self.color='green'print 'this is init' #初始化方法可以不用調用,最開始的時候直接就執行了class Chinese(object):print 'I am a chinese'name='test'pe=People() print pe print pe.color print People.color

結果:

I am a chinese this is init pe is People class green yellow

實例2:可以設置初始化的默認參數

結果:

初始化函數時可以調用方法:

del?用于釋放對象所占用的資源,注意?del?是在腳本要退出之前執行的
class People(object):
color = 'yellow'

def __init__(self):self.fd = open('/etc/passwd') # 我打開了一個文件def __del__(self):self.fd.close() # 可以在__del__中關掉這個文件

ren = People()










本文轉自 iekegz 51CTO博客,原文鏈接:http://blog.51cto.com/jacksoner/2059624,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的类的属性、类的方法、类的内置方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。