在Python中将事件绑定到变量
有没有办法在Python或wxPython中把一个事件绑定到一个变量上?就像这样:
self.Bind(EVT_ONCHANGE_VAR, self.mycallback, variable_to_watch)
这样的话,可以根据这个变量的值来决定一个对话框是显示还是隐藏。
谢谢!
2 个回答
2
如果你想在一个类的实例上监控某个属性的变化,可以通过为这个类写一个自定义的 __setattr__()
方法来实现。当某个特定的属性发生变化时,这个方法会发出通知。虽然你也可以使用属性(property),但这样的话每个属性都得单独写一个。
至于变量的监控,就要复杂得多了;因为Python没有内置的机制来做到这一点。所以你需要使用一个叫做trace hook的东西,在每行代码执行后检查变量的状态。这种方法会让你的程序运行变慢,但确实是可行的。