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呼び出される前に呼び出し可能に設定する必要があります。

編集:コード例を更新して、実際のメソッドと同じように渡しselfて使用できるようにしました。eventhandler

于 2013-09-10T20:20:27.700 に答える