python-物件導向編程

來源:互聯網
上載者:User

標籤:port   ict   物件導向編程   from   無法   span   賦值   優先   bsp   

包:檔案夾,可以有多級

模組:py檔案

在python中,為避免不同模組重名,可以將同名模組放入不同包中。

1.如何區分包和普通目錄:

在每個包裡都必須有一個__init__.py的檔案,即便是空檔案

2.舊版本中新版本代碼的使用:

from __future__ import xxx

 

執行個體屬性

由於Python是動態語言,對每一個執行個體,都可以直接給他們的屬性賦值,執行個體的屬性可以像普通變數一樣進行操作

1.初始化執行個體屬性

__init__(self,xxx,…)

class Person(object):    def __init__(self,name,gender,birth):        #初始化執行個體屬性          self.name=name        self.gender=gender        self.birth=birthxiaoming = Person(‘Xiao Ming‘, ‘Male‘, ‘1990-1-1‘, job=‘Student‘)print (xiaoming.name)print (xiaoming.job)

2.任意關鍵字參數

接受任意關鍵字參數:**kw

初始化:self.__dict__.update(kw)

3.訪問限制

如果一個屬性由雙底線開頭,該屬性就無法被外部存取

4.執行個體方法

即類中定義的函數,第一個參數為self。

執行個體方法其實也是屬性,它實際上是一個函數對象。比如說p1.get_grade 返回的是一個函數對象,但這個函數是一個綁定到執行個體的函數,p1.get_grade() 才是方法調用。

在執行個體方法內部,可以訪問所有執行個體屬性,這樣,如果外部需要訪問私人屬性,可以通過方法調用獲得,這種資料封裝的形式除了能保護內部資料一致性外,還可以簡化外部調用的難度。

# -*- coding:utf-8 -*-class Person(object):        def __init__(self, name, score):        self.name=name        self.__score=score    def get_grade(self):        #執行個體方法,即函數        if self.__score>=90:            return ‘A-優秀‘        elif self.__score>=60:            return ‘B-及格‘        else:            return ‘C-不及格‘p1 = Person(‘Bob‘, 90)print (p1.get_grade)#返回函數對象print (p1.get_grade())#方法調用

 

類屬性

如果在類上綁定一個屬性,則所有執行個體都可以訪問類的屬性,並且,所有執行個體訪問的類屬性都是同一個

1.類屬性和執行個體屬性名稱字衝突

當執行個體屬性和類屬性重名時,執行個體屬性優先順序高,它將屏蔽掉對類屬性的訪問。

2.類方法

通過標記一個 @classmethod,該方法將綁定到 Person 類上,而非類的執行個體。

因為是在類上調用,而非執行個體上調用,因此類方法無法獲得任何執行個體變數,只能獲得類的引用。

class Person(object):    __count = 0    @classmethod    #將方法綁定到類上    def how_many(cls):        return cls.__count    #類方法的第一個參數將傳入類本身,通常將參數名命名為 cls,上面的 cls.__count 實際上相當於 Person.__count。    def __init__(self,name):        self.name=name        Person.__count+=1print (Person.how_many())#本來私人屬性是不允許外部存取的,但可以通過類方法訪問p1 = Person(‘Bob‘)print (Person.how_many())

 

python-物件導向編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.