python 面向对象(类)--学习笔记
生活随笔
收集整理的這篇文章主要介紹了
python 面向对象(类)--学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
面向對象是一種編程方式, 主要集中在類和對象的兩個概念
- python 中的類符合封裝, 繼承, 多態的特征
- 類 是一個模板, 是n多函數的集成
- 對象 是類的實例化
類的成員分為三大類:字段、方法、屬性
字段
字段包括靜態字段和普通字段,靜態字段只在內存中保存一份, 普通字段在每個對象中都要保存一份(值可不同)
- 普通字段屬于對象, 實例化對象時普通字段存在于對象的內存中
- 靜態字段屬于類, 實例化對象之后不存在與對象的內存中
應用場景:如果類的多個對象需要使用相同的屬性值則應定義為靜態字段。
class Animal:#靜態字段name = '大象‘def __init__(self, name)#普通字段self.name = name # 訪問普通字段 obj = Animal('小猴子‘).name#訪問靜態字段 Animal.name View Code?
方法
方法: 普通方法, 靜態方法, 類方法。三種方法在內存中都歸屬于類, 區別在于調用方式不同
- 普通方法:由對象調用;至少一個self參數;執行普通方法時將自動調用該方法的對象賦值給self。
- 調用過程? 實例化對象-->對象調用類中的普通方法-->執行普通方法時,自動調用該方法的對象賦值給self(self獲取對象的普通字段屬性)-->執行方法內部邏輯
- 類方法:由類調用;至少一個cls參數;執行類方法時, 自動調用該方法的類賦值給cls
- 靜態方法:靜態方法由類調用;無默認參數
?
三種方法相同點:所有方法均屬于類中(非對象),所以在內存中值保存一份
不同點:方法調用者不同、調用方法時自動傳入的參數不同。
?
屬性
屬性其實是普通方法的變種
- 定義時, 在普通方法的基礎上添加@property裝飾器
- 定義時,屬性僅有一個self參數(新式類可以有多個)
- 調用時, 無需括號
方法:foo_obj.func()
屬性:foo_obj.prop
訪問屬性可以制造出和訪問字段相同的假象, 屬性由方法變種而來;屬性的功能是在屬性內部進行一系列邏輯運算,最終返回結果。
屬性由兩種定義方式:裝飾器、靜態字段(在類中定義值為property對象的靜態字段)
?
本文作為學習筆記進行記錄,學習大牛blog, 為大牛點贊, 更為詳盡內容請移步一下鏈接
http://www.cnblogs.com/wupeiqi/p/4766801.html
?
轉載于:https://www.cnblogs.com/brownz/p/8671726.html
總結
以上是生活随笔為你收集整理的python 面向对象(类)--学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ELK日志平台一 ElasticSear
- 下一篇: Python 分离路径和文件名,分离文件