溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python操作類屬性的方法有哪些

發(fā)布時間:2020-08-14 09:58:15 來源:億速云 閱讀:309 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關Python操作類屬性的方法有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

屬性的定義:python中的屬性其實是普通方法的衍生。

操作類屬性有三種方法:

1.使用@property裝飾器操作類屬性。
2.使用類或?qū)嵗苯硬僮黝悓傩裕ɡ纾簅bj.name,obj.age=18,del obj.age)
3.使用python內(nèi)置函數(shù)操作屬性。

屬性存在的意義:

1、訪問屬性時可以制造出和訪問字段完全相同的假象,屬性由方法衍生而來,如果Python中沒有屬性,方法完全可以代替其功能。

2、定義屬性可以動態(tài)獲取某個屬性值,屬性值由屬性對應的方式實現(xiàn),應用更靈活。

3、可以制定自己的屬性規(guī)則,用于防止他人隨意修改屬性值。

下面詳細介紹三種操作類屬性的方法:

1.使用@property裝飾器操作類屬性。

定義時,在普通方法的基礎上添加@property裝飾器;屬性僅有一個self參數(shù),調(diào)用時無需括號;

優(yōu)點:

1) @property裝飾器可以實現(xiàn)其他語言所擁有的getter,setter和deleter的功能(例如實現(xiàn)獲取,設置,刪除隱藏的屬性)

2) 通過@property裝飾器可以對屬性的取值和賦值加以控制,提高代碼的穩(wěn)定性。 

實例代碼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         # 自動執(zhí)行 @property 修飾的 price 方法,并獲取方法的返回值              
obj.price = 2000  # 自動執(zhí)行 @price.setter 修飾的 price 方法,并將2000賦值給方法的參數(shù)
del obj.price     # 自動執(zhí)行 @price.deleter 修飾的 price 方法 
結(jié)果輸出:
@property
@price.setter
@price.deleter

感謝各位的閱讀!關于Python操作類屬性的方法有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI