2

在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中有没有等效的方法?(蟒蛇2)。

4

1 回答 1

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在调用之前设置为可调用。

编辑:更新代码示例以确保您可以像在实际方法中一样传递和使用它selfeventhandler

于 2013-09-10T20:20:27.700 回答