1. <dd id="jcnig"><nav id="jcnig"><delect id="jcnig"></delect></nav></dd>
      <dfn id="jcnig"><tt id="jcnig"><sup id="jcnig"></sup></tt></dfn>

    2. <cite id="jcnig"></cite>
      <cite id="jcnig"><tt id="jcnig"></tt></cite>

      <address id="jcnig"><nav id="jcnig"></nav></address>
    3. <address id="jcnig"><nav id="jcnig"></nav></address>
      400-650-7353

      精品課程

      您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Python類的類屬性、實例方法和類方法

      【Python基礎知識】Python類的類屬性、實例方法和類方法

      • 發布: python培訓
      • 來源:python干貨資料
      • 2021-02-09 15:44:34
      • 閱讀()
      • 分享
      • 手機端入口

      1、類屬性

      類屬性與實例屬性不同。一個類的所有實例的值都相同的屬性稱為類屬性。所有實例都共享類屬性的值。類屬性是在類級別定義的,而不是在構造方法__init__()方法內部定義的。與實例屬性不同,使用類的名稱訪問類屬性:

      1. >>> class Cat: 
      2. ...     name = 'Mimi' 
      3. ... 

      上述Cat類包括一個名為name的類屬性,可以使用類名稱訪問該屬性:

      1. >>> Cat.name 
      2. 'Mimi' 

      Cat類的每個實例都可以使用點表示法訪問該屬性:

      1. >>> mimi = Cat() 
      2. >>> miaomiao = Cat() 
      3. >>> mimi.name 
      4. 'Mimi' 
      5. >>> miaomiao.name   # mimi和miaomiao的name都為'Mimi' 
      6. 'Mimi' 

      但是,改變某個實例的類屬性不會影響其他實例,它只會影響當前實例:

      1. >> class Cat: 
      2. ...     name = 'Mimi' 
      3. ... 
      4. >>> mimi = Cat() 
      5. >>> mimi.name 
      6. 'Mimi' 
      7. >>> mimi.name = 'MIMI'   # 將mimi的name屬性改為大寫 
      8. >>> mimi.name 
      9. 'MIMI' 
      10. >>> Cat.name   # Cat類的name屬性并沒有改變 
      11. 'Mimi' 
      12. >>> miaomiao = Cat()   # 新實例化一個實例 
      13. >>> miaomiao.name   # 新實例的name并沒有受到前一個實例影響 
      14. 'Mimi' 

      2、實例方法

      可以使用def關鍵字在類中定義任意數量的方法。方法的第一個參數通常為self,它用來引用和調用實例。在類中定義方法和定義普通的函數沒有太多區別。下面在Cat類中定義了一個名為eat的方法:

      1. >>> class Cat: 
      2. ...     def __init__(self, name, age): 
      3. ...         self.name = name 
      4. ...         self.age = age 
      5. ...     def eat(self): 
      6. ...         print('{1}歲的{0}正在進食'.format(self.name, self.age)) 
      7. ... 

      可以使用實例調用類的實例方法:

      1. >>> mimi = Cat('Mimi'1
      2. >>> mimi.eat() 
      3. 1歲的Mimi正在進食 

      【Python基礎知識】Python類的類屬性、實例方法和類方法

      3、類方法

      類方法是將類本身作為對象進行操作的方法,也就是說,類方法調用的是類變量和類方法。類方法的語法格式如下:

      @classmethod

      def 方法名(cls[,參數]):

      方法體

      類方法使用@classmethod裝飾,第一個參數為cls隱含參數,其余參數是可選的。下面給出兩個簡單的類方法的示例,第一個示例是創建只含有默認參數的類方法:

      1. @classmethod 
      2. def cfun(cls): 
      3.     print('成功進入類方法'

      第二個示例是創建含有其余參數的類方法:

      1. @classmethod 
      2. def cfun(cls, name): 
      3.     cls.name = name 
      4. print('成功進入類方法'

      調用類方法有兩種方式,一種是類外調用,采用“類名.方法名(參數)”的形式;另一種是類內調用,采用“cls.方法名(參數)”的形式:

      1. >>> class play_game(object): 
      2. ...     top_score = 100 
      3. ...     @classmethod 
      4. ...     def look_again(cls): 
      5. ...         print('再次查看最高分數:%d' % cls.top_score) 
      6. ...     @classmethod 
      7. ...     def look_socre(cls): 
      8. ...         print('最高分數:%d' % cls.top_score) 
      9. ...         cls.look_again()   # 類內調用 
      10. ... 
      11. >>> play_game.look_socre()   # 類外調用 
      12. 最高分數:100 
      13. 再次查看最高分數:100 

      上述程序中,在類外采用“類名.方法名(參數)”的形式調用了類方法look_socre()。look_socre()類方法用@classmethod進行了裝飾,并且內部調用了類屬性top_score,打印最高分數;然后在類內采用“cls.方法名(參數)”的形式調用了另一個類方法look_again()。look_again()類方法的的功能是再次打印最高分數。因此,執行類調用代碼后,先執行look_socre()類方法中的打印語句,后執行look_again()類方法中的打印語句。

      例如,創建一個學生類(Student),類屬性city的默認值為'北京';在類中創建一個類方法get_city(),該類方法的功能是打印類屬性。利用類方法set_city()修改城市,代碼如下:

      1. >>> class Student: 
      2. ...     city = '北京' 
      3. ...     @classmethod 
      4. ...     def get_city(cls): 
      5. ...         print('城市:'cls.city) 
      6. ...     @classmethod 
      7. ...     def set_city(cls, cty): 
      8. ...         cls.city = cty 
      9. ... 
      10. >>> Student.get_city() 
      11. 城市: 北京 
      12. >>> Student.set_city('上海'
      13. >>> Student.get_city() 
      14. 城市: 上海 

      下面比較一下類方法與實例方法的相同點和不同點。

      類方法與實例方法的相同點如下:

      ①都可以在類內調用。

      ②都可以通過實例調用。

      類方法與實例方法的不同點如下:

      ①類方法第一個默認參數為cls;實例方法第一個默認參數為self。

      ②類方法可以通過類名直接調用。

      ③類方法內只能調用類屬性和類方法。

      類方法的作用如下:

      ①方便類直接調用。

      ②可以修改類屬性和類方法。

      ③減少創建多個實例時所占用的內存空間,加快運行速度。

      學習疑問申請解答
      您的姓名
      您的電話
      意向課程
       

      中公優就業

      IT小助手

      掃描上方二維碼添加好友,請備注:599,享學習福利。

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

      推薦閱讀

      優就業:ujiuye

      關注中公優就業官方微信

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

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

      1 您的年齡

      2 您的學歷

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

      獲取測試結果
       
      課程資料、活動優惠 領取通道
       
       
      日本一本二本三本av网站,一本加勒比HEZYO东京热高清,一本久久A久久精品综合