python 類裝飾器 set

2021-10-19 01:17:40 字數 817 閱讀 1379

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

class student:

def __init__(self,name):

self.__name = name

def get_name(self):

return self.__name

def set_name(self,name):

self.__name = name

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

class 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(std1.name)

std1.name ="wand"

print(std1.name)

wdng

wand

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

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

python 類裝飾器 set

對於變數的訪問和設定,我們可以使用get set方法,如下 class student def init self,name self.name name def get name self return self.name def set name self,name self.name name...

python裝飾器 函式裝飾器,類裝飾器

只要實現此 模式,這個obj就叫乙個裝飾器 參考 函式裝飾器 例子 def decorator func def inner args,kwargs print before.res func args,kwargs print after.return res return inner decor...

python 裝飾器 函式裝飾器 類裝飾器

python函式裝飾器和類裝飾器筆記.usr bin env python coding utf 8 author ivan file decorators.py version from functools import wraps 裝飾器 目的是為了給函式新增附加功能 1.不帶引數裝飾器 此方式...