python裝飾器代替set get方法例項

2022-10-04 15:24:24 字數 909 閱讀 4529

對於變數的訪問和設定,我們可以使用get、set方法,如下:

class程式設計客棧 student:

def __init__(self,name):

www.cppcns.com self.__name = name

def get_name(self):

return self.__name

def set_name(self,name):

self.__name = name

我們也可以使用python 的裝飾器,用@語法糖,使得我們要使程式設計客棧用set get功能時只需要通過.xx的形式即可

cla程式設計客棧ss student1:

def __init__(self,name):

self.__name = name

@property

def name(self):

return self.__name

@name.setter#x.setter這裡要和方法名相同

def name(self,name):

self.__name = name

std1 = student1("wdng")

print(s程式設計客棧td1.name)

std1.name ="wand"

print(std1.name)

>>

wdng

wand

要注意,上述**中的self.__name,不可以寫成 self.name 不是訪問域限制的問題,而是用@property後,name方法被變成了class中的乙個屬性,屬性名即方法命,屬性命名不可以重複。

可以用hasattr(obj,property_name)來檢視類是否包含某屬性

本文標題: python裝飾器代替set get方法例項

本文位址:

python裝飾器 Python 裝飾器

簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...

python裝飾器 裝飾器

由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...

python裝飾器原理 Python裝飾器原理

裝飾器 decorator 是物件導向設計模式的一種,這種模式的核心思想是在不改變原來核心業務邏輯 的情況下,對函式或類物件進行額外的修飾。python中的裝飾器由python直譯器直接支援,其定義形式如下 decorator def core service 要理解上述 的含義,我們從自定義函式裝...