python - 属性更新后的对象事件
问题描述
示例代码:
class objval(object):
def __init__(self):
self.a = 1
def __setattr__(self, name, value):
#run some function AFTER attribute is set
test = objval()
test.a = 2
上述问题是def __setattr__(self, name, value):
在之前而不是之后运行。对象属性更改后是否会触发事件?
解决方案
这是在设置值后使用 set-attr 进行一些操作的方法:
class Objval(object):
def __init__(self):
self.a = 1
def __setattr__(self, name, value):
super().__setattr__(name, value)
#run some function AFTER attribute is set
print(f"doing something here, name is '{name}' value is '{value}'")
test = Objval()
test.a = 2
这段代码的输出是:
doing something here, name is 'a' value is '1'
doing something here, name is 'a' value is '2'
推荐阅读
- android - 无法在 Xamarin Android 应用程序中加载用于 ImageSharp 的字体
- c# - NodaTime Instant 的序列化不适用于 Asp.Net Core web api 和 OData
- c# - 如何使用 Selenium 和 Firefox 自动下载可执行文件
- windows - 如何从 Microsoft 为我的 Windows 10 微型过滤器驱动程序签名
- php - 带有子字符串过滤器的 Sql 查询以更新数据
- testing - 维护与回归测试
- python - 具有时变截止频率的低通滤波器,使用 Python
- php - 按 ASC 顺序排序
- kubernetes - kubernetes 可能同时运行不同的图像,这会导致问题吗?
- php - 如何在php中获取和存储菜单值