1. 程式人生 > >類的屬性、類的方法、類的內置方法

類的屬性、類的方法、類的內置方法

添加 通過 直接 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()              # 再通過對象實例化內部類

類的屬性、類的方法、類的內置方法