代码如下:
当我调用消息处理时,我知道如果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
谢谢。
答案 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的调用?