Property属性
装饰器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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~