• <xmp id="wgksg"><samp id="wgksg"></samp>
  • <blockquote id="wgksg"></blockquote>
  • 400-650-7353

    精品課程

    您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】類中的屬性裝飾器和綜合案例

    【Python基礎知識】類中的屬性裝飾器和綜合案例

    • 發布: python培訓
    • 來源:python干貨資料
    • 2021-03-22 16:16:42
    • 閱讀()
    • 分享
    • 手機端入口

    1、類中的屬性裝飾器

    屬性裝飾器是實現將方法轉換成屬性的裝飾器,便于操作屬性,實現屬性的更改、查看。其語法格式如下:

    class 類名():

    def __init__(self):

    self.__變量名 = 值

    @property

    def 方法名(self):

    return self.__變量名

    @方法名.setter

    def 方法名(self, 新值):

    self.__變量名 = 新值

    下面是一個使用屬性裝飾器的示例:

    1. >>> class Car(object): 
    2. ...     def __init__(self, brand, color): 
    3. ...         self.brand = brand 
    4. ...         self.color = color 
    5. ...         self.__gaso = 20 
    6. ...     @property 
    7. ...     def gaso(self): 
    8. ...         return self.__gaso 
    9. ...     @gaso.setter 
    10. ...     def gaso(self, m): 
    11. ...         self.__gaso += m 
    12. ... 
    13. >>> falali = Car('法拉利''白色'
    14. >>> falali.gaso = 80    # 進行加油 
    15. >>> print(falali.gaso)  # 打印油量 
    16. 100 

    上述程序中,首先在__init__()方法中初始化了一個類私有屬性self.__gaso,并賦值20;然后定義屬性裝飾器@property,后接的gaso()方法獲得油量;接著用@gaso.setter,給self.__gaso重新賦新值,由于加油是需要保留原先油量的,因此采用了“+=”運算符進行賦值。當使用Car類創建實例falali后,初始化油量是20,然后給屬性裝飾器賦值80,則最后打印油量是20+80=100。

    【Python基礎知識】類中的屬性裝飾器和綜合案例

    2、類的綜合案例

    創建一個學生類(Student),類中含有類屬性城市(city),默認為北京。初始化方法中含有屬性名字、年齡和金錢,其中金錢為私有屬性,默認值為0。學生實例的城市屬性與類屬性相同。代碼如下:

    1. class Student: 
    2.     city = '北京' 
    3.     def __init__(self, init_name, init_age, init_money = 0): 
    4.         self.name = init_name 
    5.         self.age = init_age 
    6.         self.__money = init_money 
    7.         self.city = Student.city 

    學生類中包含以下方法。

    ①實例方法:創建實例money屬性的get和set方法。

    ②私有方法:創建__study()方法,打印某某在認真聽課。

    ③實例方法:創建on_grade()方法,調用上面的私有方法__study()。

    ④魔法方法:創建一個__str__()打印方法,打印學生的名字。

    ⑤靜態方法:創建class_discipline()方法,打印課堂紀律。

    ⑥類方法:創建set_city()方法,設置城市屬性;創建show_city()方法,打印城市屬性。

    在學生類中添加以上方法,代碼如下:

    1. def get_money(self):  
    2.       print('%s有%d RMB' % (self.name, self.__money))     
    3.   def set_money(self, m):   
    4.       self.__money += m 
    5.   def __study(self): 
    6.       print('%s在認真聽課' % self.name) 
    7.   def on_grade(self):   
    8.       self.__study()     
    9.   def __str__(self):   
    10.       return self.name 
    11.   @staticmethod 
    12.   def class_discipline(): 
    13.       print('1.上課認真聽講! \n'
    14.                '2.不準遲到早退! \n'
    15.                '3.不準交頭接耳! \n'
    16.   @classmethod 
    17.   def set_city(cls, city): 
    18.       cls.city = city 
    19.   @classmethod 
    20.   def show_city(cls): 
    21.       print('%s人' % (cls.city)) 

    創建了學生類之后,在 Python 程序入口if __name__ == '__main__'中(每個Python模塊都包含內建變量__name__,它的默認值為'__main__'),進行類實例化和實例屬性設置和實例方法調用。首先打印課堂紀律;然后創建一個學生實例liu,構造函數的參數為:劉永,18歲,金錢設置為10000,查看金錢余額,調用聽課方法,打印城市;最后創建一個學生實例wu,構造函數的參數為:吳敏,16歲,金錢設置為9000,查看金錢余額,調用聽課方法,修改城市屬性并打印。代碼如下:

    1. if __name__ == '__main__'
    2.     Student.class_discipline() 
    3.     liu = Student('劉永'18
    4.     liu.set_money(10000
    5.     liu.get_money() 
    6.     liu.on_grade() 
    7.     Student.show_city() 
    8.     wu = Student('吳敏'16
    9.     wu.set_money(9000
    10.     wu.get_money() 
    11.     wu.on_grade() 
    12.     Student.set_city('上海'
    13.     Student.show_city() 

    建議將這個程序使用腳本模式運行,運行結果:

    1. 1.上課認真聽講!  
    2. 2.不準遲到早退!  
    3. 3.不準交頭接耳!  
    4.  
    5. 劉永有10000 RMB 
    6. 劉永在認真聽課 
    7. 北京人 
    8. 吳敏有9000 RMB 
    9. 吳敏在認真聽課 
    10. 上海人 

     

    課程好禮申請領取
    您的姓名
    您的電話
    意向課程
     

    中公優就業

    官方QQ

    掃描上方二維碼或點擊一鍵加群,免費領取價值599元網課,加群暗號:599。 一鍵加群

    >>本文地址:
    注:本站稿件未經許可不得轉載,轉載請保留出處及源文件地址。

    推薦閱讀

    優就業:ujiuye

    關注中公優就業官方微信

    • 關注微信回復關鍵詞“大禮包”,領80G學習資料
    QQ交流群
    領取免費網課
    (加群備注“網站”)
    IT培訓交流群 加入群聊 +
    軟件測試 加入群聊 +
    全鏈路UI/UE設計 加入群聊 +
    Python+人工智能 加入群聊 +
    互聯網營銷 加入群聊 +
    Java開發 加入群聊 +
    PHP開發 加入群聊 +
    VR/AR游戲開發 加入群聊 +
    大前端 加入群聊 +
    大數據 加入群聊 +
    Linux云計算 加入群聊 +
    優就業官方微信
    掃碼回復關鍵詞“大禮包”
    領取80G學習資料

    測一測
    你適合學哪門IT技術?

    1 您的年齡

    2 您的學歷

    3 您更想做哪個方向的工作?

    獲取測試結果
     
    課程資料、活動優惠 領取通道
     
     
    A级毛片毛片免费观看久,A毛看片免费观看视频,毛片曰本女人牲交视频视频