裝飾器Property屬性
可以動態的控制屬性的獲取,設定,刪除相關操作
方法一
"""
是同一個方法名
"""
class MyClass():
def __init__(self,name):
self.name = name
@property # 獲取值時候觸發
def username(self):
return self.name
@username.setter # 設定值時候觸發
def username(self,val):
# print(val) # val是設定的右值
self.name = val
@username.deleter
def username(self): # 刪除值的時候觸發
del self.name
obj = MyClass("小紅")
# 獲取值的時候自動觸發@property 裝飾器下的方法
res = obj.username
print(res)
# 設定值的時候自動觸發@username.setter 裝飾器下的方法
obj.username = "小蘭"
print(obj.username)
# 刪除值的時候自動觸發@username.deleter 裝飾器下的方法
del obj.username
方法二
class MyClass():
def __init__(self,name):
self.name = name
# 獲取資料
def get_username(self):
return self.name
# 設定資料
def set_username(self,val):
self.name = val
# 刪除資料
def del_username(self):
del self.name
# 引數的順序: 獲取 , 設定 , 刪除
username = property(get_username , set_username , del_username )
obj = MyClass("小芳")
# 獲取值的時候,執行get_username下的相關操作
print(obj.username)
# 設定值的時候,執行 set_username 下的相關操作
obj.username = "11223344"
print(obj.username)
# 刪除值的時候,執行 del_username 下的相關操作
del obj.username