1

我正在构建一个服务器,我希望低级函数通过再次调用它们来向高级函数发出信号。例如:

def bar():
    print('hello')
    #run blah() again

def foo():
    bar()

def blah():
    foo()

blah()

使用打印出过去的函数调用的 traceback.extract_stack() 或 inspect.stack() 方法接近我正在寻找的,即当我到达 bar() 时,我希望能够知道最初,我打电话给 blah() 让这一切顺利进行。但是,我想不出一种方法来实际再次调用 blah() 。顺便说一句,我意识到上面将是循环的,只是一个例子。

我还想避免通过函数将任何参数传回——我希望有一些追溯/检查/跟踪技巧可以为我跟踪这一切。

@ThomasK,关于我在做什么的更多背景(也许我在想这完全错误):1)我有一个从各种来源(即根)提取信息的服务器,做了一堆计算,然后将最终数据点(即离开)发送给请求它的客户端 2)客户端发起请求以开始,说“我想要 X,Y,Z”,然后惰性服务器去获取它 3)随后,服务器跟踪根,当任何“根”发生变化时,它会自动拉动所有受影响的“叶子”,向客户端发送更新。在上面的简化示例中,bar() 是根,blah() 是向客户端发送数据的叶子。

为了让未来的开发更加灵活,我宁愿不要硬编码任何东西,并保持“好的,当你的数据发生变化时,立即去告诉每个人重新请求他们的数据”的基本前提。也许有一个封装了这一点的模式。

4

0 回答 0