在javascript中,如果我有一个包含想要向对象外部发送信号的方法的对象,我可能会做这样的事情......
function class1(arg1){
...
//something has happened - send out an alert
this.method1();
...
}
var obj1 = new class1();
//define function to respond to the request from obj1
obj1.method1 = function(){ ... }
在python中有相同的方法吗? (python 2)。
答案 0 :(得分:2)
您可以在python中执行此操作。
class class1(object):
def __init__(self, arg):
self.arg = arg
def myevent(self):
self.method1(self)
def realmethod(self):
print('arg', self.arg)
def eventhandler(obj):
print('event')
obj.realmethod()
>>> obj1 = class1('real object attr')
>>> obj1.method1 = eventhandler
>>> obj1.myevent()
event
('arg', 'real object attr')
在javascript中,您希望确保在调用method1
之前将其设置为可调用。
修改:更新的代码示例,以确保您可以将self
传递给eventhandler
,并像在实际方法中一样使用它。