首頁>技術>

類是什麼?

官方定義

類提供了一種組合資料和功能的方法。建立一個新類意味著建立一個新的物件 型別,從而允許建立一個該型別的新 例項 。每個類的例項可以擁有儲存自己狀態的屬性。一個類的例項也可以有改變自己狀態的(定義在類中的)方法。

簡單的說,類就是一個事物的抽象描述。所以類中可以包含描述類的方法和屬性,其中方法又分為普通方法,類方法,靜態方法。詳細區別可檢視Python的@staticmethod和@classmethod的作用與區別,今天主要介紹普通方法。

定義方式:(類似函式的定義),用class來標識。

就像這樣:

class ClassName:    <statements>    def funs(self, arg):        # self is the instance of class        <fun statements>    @classmethod    def clsFuns(cls, arg):        # cls is the class        <statements>    @staticmethod    def staticFun(arg):        # 與普通函式類似        <statements>
類怎麼用?

需求:我們需要封裝一個通用的類來描述男人和女人。

class Man(object):    def __init__(self):        print("it is man class...")    def canPregnant(self):        print("nonono...man can't pregnant...")    def haveBeard(self):        print("yep...")class Woman(object):    def __init__(self):        print("it is woman class...")    def canPregnant(self):        print("yep...woman can pregnant...")    def haveBeard(self):        print("nonono...")

定義的男人和女人類都描述了其能否懷孕,是否長鬍子。

類的使用:

boy=Man()    # 例項化一個男孩girl=Woman()  # 例項化一個女孩boy.canPregnant()  # 男孩是否可以懷孕?girl.canPregnant() # 女孩是否可以懷孕?# 輸出➜  test git:(master) ✗ python3 test.pyit is man class...it is woman class...nonono...man can't pregnant...yep...woman can pregnant...
類的變數與可訪問性

變數(屬性)分類:

類變數:直接定義在類中,為所有類物件共享;透過類名訪問clsName.var;例項變數:每個例項獨有的資料(在__init__方法中定義、初始化);透過例項物件訪問inst.var;

Python中的可訪問性是透過約定來實現的:

私有屬性:以兩個下劃線開始的,__var;保護屬性:以一個下劃線開始的,_var;只能自身與子類可訪問;普通屬性:以字母等開始的。類的專有方法

Python透過約定一些專有的方法來增強類的功能:

__init__:建構函式,在生成物件時呼叫(例項變數也在此函式中定義);__del__:解構函式,釋放物件時使用;__repr__:列印(若有__str__,則先嚐試str),轉換;__setitem__:按照索引賦值;__getitem__:按照索引取值;__len__:獲取長度,內建函式len()使用;__cmp__:比較運算;__call__:函式呼叫(物件看作一個運算元);__add__:加運算;__sub__:減運算;__mul__:乘運算;__div__:除運算;__mod__:求餘運算;__pow__:乘方運算;

repr與str:repr()與str()為內建函式,對應類中的__repr__與__str__來處理字串:

16
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 前端iframe的屬性及優缺點解析