装饰器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
标签:username,obj,name,self,del,Property,def,属性
From: https://www.cnblogs.com/wbcde116/p/18083777