3

現在、Python でコールバックを使用しようとしています。

私がやりたいことは、コールバックから値を返し、この戻り値を条件付き処理に使用することです。たとえば、ユーザーが「Y」と入力すると、コンソールに何かを出力したいと思います。

私はPythonが初めてなので、以下のコードは現在入手できる限り近いものですが、

a)それがPythonicの方法であるかどうかはわかりません

b)それを行う正しい方法は?

    class Observable:
        def subscribe(self,callback):
            self.callback = callback

        def fire(self):
            self.callback()

    class CallBackStuff:
        def doCallback(self):
            userInput = raw_input("Please enter Y or N?")
            return userInput

    if __name__ == '__main__':
        s = CallBackStuff()
        o = Observable()
        o.subscribe(s.doCallback)
        t = o.fire()
        print t
4

2 に答える 2

1
class Observable(object):
    def __call__(self, fun):
        return fun()


class Callback(object):
    def docallback(self):
        inp = raw_input()
        return inp

if __name__ == "__main__":
    print Observable()(Callback().docallback)
于 2013-10-25T09:56:52.387 に答える