2

関数でrx.Observableオブジェクトを「通常の」オブジェクトに変換するエレガントな方法は何ですか?

例えば:

def foo():
    return rx.Observable.just('value').subscribe(<some magic here>)

>>> print(foo())

# expected:
# value
# however get:
# <rx.disposables.anonymousdisposable.AnonymousDisposable at SOME ADDRESS>

サブスクライブの戻りは使い捨てオブジェクトであり、これを実装する「醜い」方法は次のとおりであることを理解しています。

class Foo:
    def __init__(self):
        self.buffer = None

    def call_kernel(self):
        rx.Observable.just('value').subscribe(lambda v: self.buffer = v)

    def __call__(self):
        self.call_kernel()
        return self.buffer
>>> Foo()

# get:
# value

これを行うより良い方法はありますか?

ありがとう。

4

1 に答える 1