十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要講解了python類屬性的詳細(xì)解析,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

首先我們來看一下屬性的定義
屬性的定義:python中的屬性其實(shí)是普通方法的衍生。
操作類屬性有三種方法:
1.使用@property裝飾器操作類屬性。
2.使用類或?qū)嵗苯硬僮黝悓傩裕ɡ纾簅bj.name,obj.age=18,del obj.age)
3.使用python內(nèi)置函數(shù)操作屬性。
屬性存在的意義:
1、訪問屬性時(shí)可以制造出和訪問字段完全相同的假象,屬性由方法衍生而來,如果Python中沒有屬性,方法完全可以代替其功能。
2、定義屬性可以動(dòng)態(tài)獲取某個(gè)屬性值,屬性值由屬性對(duì)應(yīng)的方式實(shí)現(xiàn),應(yīng)用更靈活。
3、可以制定自己的屬性規(guī)則,用于防止他人隨意修改屬性值。
下面詳細(xì)介紹三種操作類屬性的方法:
1.使用@property裝飾器操作類屬性。
定義時(shí),在普通方法的基礎(chǔ)上添加@property裝飾器;屬性僅有一個(gè)self參數(shù),調(diào)用時(shí)無需括號(hào);
優(yōu)點(diǎn):
1) @property裝飾器可以實(shí)現(xiàn)其他語言所擁有的getter,setter和deleter的功能(例如實(shí)現(xiàn)獲取,設(shè)置,刪除隱藏的屬性)
2) 通過@property裝飾器可以對(duì)屬性的取值和賦值加以控制,提高代碼的穩(wěn)定性。
實(shí)例代碼1:
#encoding=utf-8
class Goods(): #新式類
@property
def price(self): #查看屬性值
print ('@property ')
@price.setter #修改、設(shè)置屬性
def price(self, value):
print ('@price.setter' )
@price.deleter#刪除屬性
def price(self):
print ('@price.deleter')
obj = Goods(50)
obj.price# 自動(dòng)執(zhí)行 @property 修飾的 price 方法,并獲取方法的返回值
obj.price = 2000 # 自動(dòng)執(zhí)行 @price.setter 修飾的 price 方法,并將2000賦值給方法的參數(shù)
del obj.price # 自動(dòng)執(zhí)行 @price.deleter 修飾的 price 方法
結(jié)果輸出:
@property
@price.setter
@price.deleter