官方定義
類提供了一種組合數據和功能的方法。創建一個新類意味著創建一個新的對象?類型,從而允許創建一個該類型的新?實例?。每個類的實例可以擁有保存自己狀態的屬性。一個類的實例也可以有改變自己狀態的(定義在類中的)方法。
python怎么定義變量,簡單的說,類就是一個事物的抽象描述。所以類中可以包含描述類的方法和屬性,其中方法又分為普通方法,類方法,靜態方法。詳細區別可查看Python的@staticmethod和@classmethod的作用與區別,今天主要介紹普通方法。
定義方式:(類似函數的定義),用class來標識。
就像這樣:
class ClassName: def funs(self, arg): # self is the instance of class @classmethod def clsFuns(cls, arg): # cls is the class @staticmethod def staticFun(arg): # 與普通函數類似
類怎么用?需求:我們需要封裝一個通用的類來描述男人和女人。
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...
類的變量與可訪問性python類的屬性和方法。變量(屬性)分類:
類變量:直接定義在類中,為所有類對象共享;通過類名訪問clsName.var
;
實例變量:每個實例獨有的數據(在__init__
方法中定義、初始化);通過實例對象訪問inst.var
;
Python中的可訪問性是通過約定來實現的:
私有屬性:以兩個下劃線開始的,__var
;
保護屬性:以一個下劃線開始的,_var
;只能自身與子類可訪問;
python菜鳥教程。普通屬性:以字母等開始的。
Python通過約定一些專有的方法來增強類的功能:
__init__
:構造函數,在生成對象時調用(實例變量也在此函數中定義);
__del__
:析構函數,釋放對象時使用;
__repr__
:打印(若有__str__
,則先嘗試str),轉換;
__setitem__
:按照索引賦值;
python類的命名規則?__getitem__
:按照索引取值;
__len__
:獲取長度,內置函數len()
使用;
__cmp__
:比較運算;
__call__
:函數調用(對象看作一個算子);
__add__
:加運算;
__sub__
:減運算;
Python的類的定義和構造、__mul__
:乘運算;
__div__
:除運算;
__mod__
:求余運算;
__pow__
:乘方運算;
repr與str:repr()與str()為內置函數,對應類中的__repr__
與__str__
來處理字符串:
repr對Python(程序員)友好,生成的字符串應可通過eval()重構對象;
python中類的定義、str為用戶友好,方便用戶理解的輸出;
print時先查看__str__
,若未定義,再查看__repr__
;
往期推薦
Python面向對象的反射
Python的封裝繼承多態和多重繼承
Python的@staticmethod和@classmethod的作用與區別
好文!必須在看版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态