類的屬性、類的方法、類的內置方法
阿新 • • 發佈:2018-01-11
添加 通過 直接 self 私有方法 icm python 轉換 內置 類的屬性
變量在類中稱為類的屬性,函數在類中稱為類的方法,類的屬性分為以下幾種:
(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()
(3) 類方法:能被類直接調用的方法稱為類方法,但要通過 classmethod() 函數處理後才能被類直接調用
(4) 靜態方法:靜態方法相當於全局函數,可以被類直接調用,但要通過 staticmethod() 處理後才能被直接調用,註意靜態方法沒有 self 參數
實例:
#!/usr/bin/env python class People(object): color = ‘yellow‘ __age = 30 def __talk(self): # 定義私有方法,需要在前面添加雙下劃線 print "I am talking with Tom" def test(self): # 定義公有方法,方法的定義和函數一樣,但是需要 self 作為第一個參數,表示執行對象本身 self.__talk() # 在類的內部調用私有方法 jack = People() jack.test()
#!/usr/bin/env python class People(object): color = ‘yellow‘ __age = 30 def test(self): # 定義公有方法 print "Testing......" cm = classmethod(test) # 通過 classmethod 函數轉換成類方法 jack = People() People.cm() # 公有方法是不可以通過類直接調用的,只能通過對象來調用,但轉換成類方法之後,就可以通過類直接調用
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
def test(): # 在類中定義方法如果沒有加 self 參數只能稱其為函數
print "Testing......"
sm = staticmethod(test) # 通過 staticmethod 函數轉換成靜態方法
jack = People()
People.sm() # 靜態方法可以通過類直接調用
類的內置方法
所謂內部類,就是在類的內部定義的類,主要的目的是為了更好的抽象現實世界
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
class Chinese(object): # 定義內部類
print "I am chinese"
jack = People.Chinese() # 可以通過外部類調用內部類然後再實例化一個對象
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
class Chinese(object): # 定義內部類
print "I am chinese"
ren = People() # 可以先實例化外部類
jack = ren.Chinese() # 再通過對象實例化內部類
類的屬性、類的方法、類的內置方法