python新式类删改查
1 class Goods(object): 2 3 def __init__(self): 4 # 原价 5 self.original_price = 100 6 # 折扣 7 self.discount = 0.8 8 9 @property 10 def price(self): 11 # 实际价格 = 原价 * 折扣 12 new_price = self.original_price * self.discount 13 return new_price 14 15 @price.setter 16 def price(self, value): 17 self.original_price = value 18 19 @price.deleter 20 def price(self): 21 del self.original_price 22 23 obj = Goods() 24 print(obj.price) # 获取商品价格 25 obj.price = 200 # 修改商品原价 26 del obj.price # 删除商品原价
简单记下:
@property
@price.setter
@price.deleter
-
property:
property的构造方法中有个四个参数
第一个参数是方法名,调用 对象.属性 时自动触发执行方法
第二个参数是方法名,调用 对象.属性 = XXX 时自动触发执行方法
第三个参数是方法名,调用 del 对象.属性 时自动触发执行方法
第四个参数是字符串,调用 对象.属性.__doc__ ,此参数是该属性的描述信息
1 class Foo: 2 def get_bar(self): 3 return 'abcdefd' 4 5 # *必须两个参数 6 def set_bar(self, value): 7 return 'set value' + value 8 9 def del_bar(self): 10 return 'abcdefd' 11 12 BAR = property(get_bar, set_bar, del_bar, 'description...') 13 14 obj = Foo() 15 16 obj.BAR # 自动调用第一个参数中定义的方法:get_bar 17 obj.BAR = "egon" # 自动调用第二个参数中定义的方法:set_bar方法,并将“alex”当作参数传入 18 del obj.BAR # 自动调用第三个参数中定义的方法:del_bar方法 19 print(obj.BAR.__doc__ ) # 自动获取第四个参数中设置的值:description... 20 print(obj.BAR)
print(obj.BAR.__doc__ )实际上并没有打印'description...'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!