python中property屬性的介紹及其應用詳解
Python的property屬性的功能是:property屬性內(nèi)部進行一系列的邏輯計算,最終將計算結果返回。
使用property修飾的實例方法被調(diào)用時,可以把它當做實例屬性一樣
property的用法1——裝飾器方式
在類的實例方法上應用@property裝飾器
class Test: def __init__(self): self.__num = 100 @property def num(self): print("--get--") return self.__num @num.setter def num(self, num): print("--set--") self.__num = num t = Test() print(t.num) t.num = 1 """ --get-- 100 --set-- """
property屬性的定義和調(diào)用要注意一下幾點:
- 定義時,在實例方法的基礎上添加 @property 裝飾器;并且僅有一個self參數(shù)。
- 調(diào)用時,無需括號。
- 經(jīng)典類中的屬性只有一種訪問方式,其對應被 @property 修飾的方法。
- 新式類中的屬性有三種訪問方式,并分別對應了三個被@property、@方法名.setter、@方法名.deleter修飾的方法。
- Python中的類有經(jīng)典類和新式類,新式類的屬性比經(jīng)典類的屬性豐富。( 如果類繼object,那么該類是新式類 ),python3中的類都是新式類。
property的用法2——類屬性方式
當使用類屬性的方式創(chuàng)建property屬性時,經(jīng)典類和新式類無區(qū)別
class Test: def __init__(self): self.__num = 100 def setNum(self, num): print("--set--") self.__num = num def getNum(self): print("--get--") return self.__num # 注意:要先寫get方法,再寫set方法 aa = property(getNum, setNum) t = Test() print(t.aa) t.aa = 1
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
詳解Python編程中對Monkey Patch猴子補丁開發(fā)方式的運用
Monkey Patch猴子補丁方式是指在不修改程序原本代碼的前提下,通過添加類或模塊等方式在程序運行過程中加入代碼,下面就來進一步詳解Python編程中對Monkey Patch猴子補丁開發(fā)方式的運用2016-05-05Python+OpenCV進行不規(guī)則多邊形ROI區(qū)域提取
ROI即感興趣區(qū)域。機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文將利用Python和OpenCV實現(xiàn)不規(guī)則多邊形ROI區(qū)域提取,需要的可以參考一下2022-03-03python web.py開發(fā)httpserver解決跨域問題實例解析
這篇文章主要介紹了python web.py開發(fā)httpserver解決跨域問題實例解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02CentOS 7下安裝Python 3.5并與Python2.7兼容并存詳解
這篇文章主要給大家介紹了在CentOS 7下安裝Python 3.5并與Python2.7兼容并存的相關資料,文中將安裝步驟介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。2017-07-07python elasticsearch從創(chuàng)建索引到寫入數(shù)據(jù)的全過程
這篇文章主要介紹了python elasticsearch從創(chuàng)建索引到寫入數(shù)據(jù)的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08