您好,登錄后才能下訂單哦!
小編給大家分享一下python類屬性指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
首先我們來看一下屬性的定義
屬性的定義:python中的屬性其實是普通方法的衍生。
操作類屬性有三種方法:
1.使用@property裝飾器操作類屬性。
2.使用類或實例直接操作類屬性(例如:obj.name,obj.age=18,del obj.age)
3.使用python內置函數操作屬性。
屬性存在的意義:
1、訪問屬性時可以制造出和訪問字段完全相同的假象,屬性由方法衍生而來,如果Python中沒有屬性,方法完全可以代替其功能。
2、定義屬性可以動態獲取某個屬性值,屬性值由屬性對應的方式實現,應用更靈活。
3、可以制定自己的屬性規則,用于防止他人隨意修改屬性值。
下面詳細介紹三種操作類屬性的方法:
1.使用@property裝飾器操作類屬性。
定義時,在普通方法的基礎上添加@property裝飾器;屬性僅有一個self參數,調用時無需括號;
優點:
1) @property裝飾器可以實現其他語言所擁有的getter,setter和deleter的功能(例如實現獲取,設置,刪除隱藏的屬性)
2) 通過@property裝飾器可以對屬性的取值和賦值加以控制,提高代碼的穩定性。
實例代碼1:
#encoding=utf-8 class Goods(): #新式類 @property def price(self): #查看屬性值 print ('@property ') @price.setter #修改、設置屬性 def price(self, value): print ('@price.setter' ) @price.deleter #刪除屬性 def price(self): print ('@price.deleter') obj = Goods(50) obj.price # 自動執行 @property 修飾的 price 方法,并獲取方法的返回值 obj.price = 2000 # 自動執行 @price.setter 修飾的 price 方法,并將2000賦值給方法的參數 del obj.price # 自動執行 @price.deleter 修飾的 price 方法 結果輸出: @property @price.setter @price.deleter
實例代碼2:通過@property裝飾器對屬性的取值和賦值加以控制
class Goods(object): def __init__(self): self.value=50 @property def price(self): # 查看屬性 return self.value @price.setter # 添加或設置屬性(屬性名.setter) def price(self, value): if value >=50 and value<=100: #對屬性的取值和賦值加以控制 self.value=value print (self.value) else: print ("請輸入一個50到100之間的數!") @price.deleter # 刪除屬性(屬性名.deleter) 注意:屬性一旦刪除,就無法設置和獲取 def price(self): del self.value print ("price is deleted!") obj = Goods() print (obj.price) # 自動執行 @property 修飾的 price 方法,并獲取方法的返回值 obj.price=106 # 自動執行 @price.setter 修飾的 price 方法,并將106 賦值給方法 del obj.price # 自動執行 @price.deleter 修飾的 price 方法 結果輸出: 50 請輸入一個50到100之間的數! price is deleted!
以上是python類屬性指的是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。