我想知道在调用函数/方法和被调用函数/方法之间是否有一种干净的方法来建立某种通信。例如,调用者是主驱动程序的一部分,主驱动程序显示UI上的当前应用程序状态。它需要连接到远程网络节点,为此它调用另一个Python模块(在同一线程中)中的另一个方法。在
主(驱动)模块:import ssh_client
node_ip = "10.10.10.10"
node_user = "myuser"
node_pass = "mypass"
conn_result = False
while not conn_result :
conn_result = ssh_client.connect(node_ip, node_user, node_pass)
# process custom return codes from connect method here...
ssh_客户端模块:
^{pr2}$
现在,当network module方法尝试连接时,它可能会遇到由网络延迟或其他问题引起的各种问题,并将相应地重试连接。此时,我希望该方法以某种方式通知我的主调用方方法连接失败,正在尝试重新连接。在
在上面的例子中,我依赖于返回代码来获得当前的连接情况。但是,我不需要依赖返回代码,而是希望在connect方法执行时数据。换句话说,当出现异常时,我希望connect方法告诉驱动程序模块发生异常并尝试重新连接。在
虽然可以通过简单的方法来实现这一点,比如将状态更新为文本文件,并让调用者轮询状态更改,但这听起来并不是一个非常令人信服的解决方案。Python中有什么东西可以证明很方便吗,我是否遗漏了一些显而易见的东西?解决这个问题的好办法是什么?在