python 中物件導向編程簡單總結1

來源:互聯網
上載者:User

標籤:

1.類的定義方式

class ClassName(object): #object 表示繼承的類,預設為object    pass

   類的使用類似函數的調用,也可以認為是調用了一次模板來建立一個執行個體。

2.建立對象的屬性和方法

  不同於java等語言的定義,python是動態語言,因此可以給同一個類的不同執行個體動態地增加不同的屬性。

xiaoming = Person()xiaoming.name = "xiaoming" #賦值的時候建立一個執行個體的屬性xiaoming.gender = "male"xiaohong = Person()xiaohong.school = "sichuan university" #和xiaoming的屬性可以不同xiaohong.sex = "female"

  在Python的中方法也可以動態地增加到執行個體對象中,需要用到  types.MethodType() ,這種情況在通常情況下不多見!一般還是定義在類中。

import typesdef fn_get_grade(self):    if(self.score >= 80):        return ‘A‘    elif(self.score >= 60):        return ‘B‘    else:        return ‘C‘class Person(object):    def __init__(self,name,score):        self.name = name        self.score = scorep1 = Person(‘Bob‘,90)#動態為p1Binder 方法p1.get_grade = types.MethodType(fn_get_grade,p1,Person)print p1.get_grade()   #會輸出A,方法動態綁定到p1對象上了p2 = Person(‘Alice‘,65)print p2.get_grade() #Error,p2沒有這個方法

 

3.初始化執行個體屬性

def __init__(self,attr1,attr2): #在建立執行個體是被自動調用    self.attr1_name = attr1    self.attr2_name = attr2

4.訪問限制

   以雙底線開頭,且不以雙底線結尾的屬性名稱,無法被外界訪問

5.建立類屬性和方法

  為類所有,沒有用self.attr 的方式來綁定到對象的屬性,它在類的方法中要通過 類名.類屬性名稱 如: Person.cout 來訪問。千萬不要在執行個體上修改類屬性,它實際上並沒有修改類屬性,而是給執行個體綁定了一個執行個體屬性。

class Person(object):    count = 0  #定義類屬性    @classmethod  #標記類方法    def how_many(cls): #cls表示類本身,作用相當於self        return cls.count    def __init__(self,name):        self.name = name        Person.count = Person.count + 1 #沒有cls,需要用類名來訪問類屬性print Person.how_many()p1 = Person(‘Bob‘)print Person.how_many()

 

python 中物件導向編程簡單總結1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.