我想创建一个行为类似于 python 变量但在“变量”被更改/读取时调用一些回调函数的类。
换句话说,我希望能够按如下方式使用该类:
x=myClass(change_callback, read_callback)
将 x 定义为 myclass 的一个实例。构造函数(INIT)将 2 个函数作为参数:每次更改 x 时调用的函数,以及每次“读取”x 时调用的函数
以下声明:
x=1
change_callback(1)
将“保存” 1 并触发可以执行任何操作的调用。
以下声明:
a=x
将检索存储的值并调用read_callback()
这可能会更改存储的值并执行其他操作。
我希望它适用于任何类型,例如能够编写如下内容:
x=[1 2 3]
这会触发change_callback([1 2 3])
x.append(4)
会触发change_callback([1 2 3 4])
(并且可能会触发之前的调用read_callback()
)
x={'a':1}
会触发change_callback({'a':1})
print(x)
当然会触发对 read_callback() 的调用...并返回最后存储的值进行打印。
这个想法是可以记录对变量的任何访问,或生成其他计算……毫无疑问。
我觉得这应该是可能的,但我真的不知道我的对象应该继承什么......如果我必须将我限制为一种类型,例如列表,有没有办法重新定义所有赋值运算符(包括“一次性”中的 append()...) 等方法,保持原始行为(基类方法)并添加回调...
还是有更合适的方法(模块...)来实现相同的目标...?
提前致谢,