今天爲大家帶來的內容是:用實例帶你全面瞭解python property屬性
1. 什麼是property屬性
一種用起來像是使用的實例屬性一樣的特殊屬性,可以對應於某個方法
如下的例子用於說明如何定一個簡單的property屬性:
property屬性的定義和調用要注意一下幾點:
- 定義時,在實例方法的基礎上添加 @property 裝飾器;並且僅有一個self參數
- 調用時,無需括號
2. 簡單的實例
對於京東商城中顯示電腦主機的列表頁面,每次請求不可能把數據庫中的所有內容都顯示到頁面上,而是通過分頁的功能局部顯示,所以在向數據庫中請求數據時就要顯示的指定獲取從第m條到第n條的所有數據 這個分頁的功能包括:
- 根據用戶請求的當前頁和總數據條數計算出 m 和 n
- 根據m 和 n 去數據庫中請求數據
嗨嘍:正在學習python的小夥伴或者打算學習的,可以加羣:877562786領取資料!
從上述可見:
Python的property屬性的功能是:property屬性內部進行一系列的邏輯計算,最終將計算結果返回。
3. property屬性的有兩種方式
- 裝飾器 即:在方法上應用裝飾器
- 類屬性 即:在類中定義值爲property對象的類屬性
3.1) 裝飾器方式
在類的實例方法上應用@property裝飾器
Python中的類有經典類和新式類,新式類的屬性比經典類的屬性豐富。( 如果類繼object,那麼該類是新式類 )
經典類,具有一種@property裝飾器:
注意:
- 經典類中的屬性只有一種訪問方式,其對應被 @property 修飾的方法
- 新式類中的屬性有三種訪問方式,並分別對應了三個被@property、@方法名.setter、@方法名.deleter修飾的方法
由於新式類中具有三種訪問方式,我們可以根據它們幾個屬性的訪問特點,分別將三個方法定義爲對同一個屬性:獲取、修改、刪除
3.2 類屬性方式,創建值爲property對象的類屬性
當使用類屬性的方式創建property屬性時,經典類和新式類無區別
property方法中有個四個參數
- 第一個參數是方法名,調用 對象.屬性 時自動觸發執行方法
- 第二個參數是方法名,調用 對象.屬性 = XXX 時自動觸發執行方法
- 第三個參數是方法名,調用 del 對象.屬性 時自動觸發執行方法
- 第四個參數是字符串,調用 對象.屬性.doc ,此參數是該屬性的描述信息
由於類屬性方式創建property屬性具有3種訪問方式,我們可以根據它們幾個屬性的訪問特點,分別將三個方法定義爲對同一個屬性:獲取、修改、刪除
綜上所述:
- 定義property屬性共有兩種方式,分別是【裝飾器】和【類屬性】,而【裝飾器】方式針對經典類和新式類又有所不同。
- 通過使用property屬性,能夠簡化調用者在獲取數據的流程
4. property屬性-應用
4.1. 私有屬性添加getter和setter方法
4.2. 使用property升級getter和setter方法
4.3. 使用property取代getter和setter方法
重新實現一個屬性的設置和讀取方法,可做邊界判定
以上就是本文的全部內容,希望對大家的學習有所幫助!!!
python程序員交流羣:877562786(羣裏含大量學習資料,面試寶典等)