Python:如何将函数内变量调用回函数

时间:2017-10-14 21:29:27

标签: python variables

代码如下:
当我调用消息处理时,我知道如果server_handler消息类型是" nextValidId",我将数字1003(在下面的例子中)提取到server_handler函数中的变量order_id2中。如何在msg类型为" nextValidId&#34 ;;的情况下,如何在main fxn中设置order_id = 1003。否则什么都不做。

def main():
    order_id = 1001
    tws_conn.registerAll(server_handler)

# here msg text for example is "<nextValidId orderId=1003>"
def server_handler(msg):
    print("Server Msg:", msg.typeName, "-", msg)
    if msg.typeName == "nextValidId":
        order_id2 = int(str(msg).split("nextValidId orderId=",1)[1][:-1])   #returns 1003 for above #example

谢谢。

1 个答案:

答案 0 :(得分:0)

有三种方法可以将值从函数传递给调用者:

最常见,最明显且通常最好的技术是使用 return 语句。接下来是修改已经传递给你的函数的一些可变对象的状态(这可能适合你的问题。(其余的方法需要修改全局状态;几乎总是设计和编码实践不良的症状)。 / p>

# here msg text for example is "<nextValidId orderId=1003>"
def server_handler(msg):
    print("Server Msg:", msg.typeName, "-", msg)
    if msg.typeName == "nextValidId":
        order_id2 = int(str(msg).split("nextValidId orderId=",1)[1][:-1])   #returns 1003 for above #example
        msg.nextOrder = orderId. # ??
    return order_id2 # ??

谁在调用 server_handler()函数?如何调度处理下一个有效ID的调用?