python怎么定義變量,python類的定義與使用_Python15類的定義和使用

 2023-10-04 阅读 30 评论 0

摘要:類是什么?官方定義類提供了一種組合數據和功能的方法。創建一個新類意味著創建一個新的對象?類型,從而允許創建一個該類型的新?實例?。每個類的實例可以擁有保存自己狀態的屬性。一個類的實例也可以有改變自己狀態的(定義在類中的)方法。python怎么定義變量,簡

c749507ca42125cf961c232300efd09b.png

類是什么?4fd1385ecbcf217b57afdc2f4371030c.gif

官方定義

類提供了一種組合數據和功能的方法。創建一個新類意味著創建一個新的對象?類型,從而允許創建一個該類型的新?實例?。每個類的實例可以擁有保存自己狀態的屬性。一個類的實例也可以有改變自己狀態的(定義在類中的)方法。

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):        # 與普通函數類似        
類怎么用?4fd1385ecbcf217b57afdc2f4371030c.gif

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

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...
類的變量與可訪問性4fd1385ecbcf217b57afdc2f4371030c.gif

python類的屬性和方法。變量(屬性)分類:

  • 類變量:直接定義在類中,為所有類對象共享;通過類名訪問clsName.var

  • 實例變量:每個實例獨有的數據(在__init__方法中定義、初始化);通過實例對象訪問inst.var

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

  • 私有屬性:以兩個下劃線開始的,__var

  • 保護屬性:以一個下劃線開始的,_var;只能自身與子類可訪問;

  • python菜鳥教程。普通屬性:以字母等開始的。

類的專有方法4fd1385ecbcf217b57afdc2f4371030c.gif

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__

88588b52e847ff9d852e97a9f87f3187.png

往期推薦

Python面向對象的反射

Python的封裝繼承多態和多重繼承

Python的@staticmethod和@classmethod的作用與區別

好文!必須在看

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/112084.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息