我是python/编程的新手,所以这可能是一个简单的解决方案。我只是想弄清楚如何输出函数?
我使用以下代码:
import time
from binance.client import Client
from datetime import datetime
def process_message(msg):
print("message type: {}".format(msg['e']))
print(msg)
var1 = msg['s']
var2 = msg['p']
print(var1 + var2)
return(var1)
from binance.websockets import BinanceSocketManager
bm = BinanceSocketManager(client)
bm.start_trade_socket('BNBBTC', process_message)
bm.start()在这一点上,websocket按照预期开始流式传输数据。
因此,如果我从函数内部调用它,我可以看到函数的结果,但如果我尝试像这样(在函数外部)调用它,我会收到一个错误:
print(process_message)我收到以下信息: 0x03A919B8处的函数process_message
如果我自己调用函数:
process_message()我收到:"process_message()缺少1个必需的位置参数:'msg'“
如果我使用参数调用函数:
process_message(msg)我得到:名称'msg‘未定义
我做错了什么?我该如何访问函数外部的数据?
任何帮助或澄清都将不胜感激,
非常感谢,
发布于 2020-06-19 11:38:35
所以原因是没有像预期的那样工作,因为简而言之,我错了:)
上面列出的函数是一个回调函数,它的全部工作是处理另一个函数接收到的消息,所以为了得到我想要的结果,我需要修改原始函数,而不是回调函数。
在我发布这个问题之前,我会将这个问题归结为对函数的了解不足。
谢谢你抽出时间来。
发布于 2020-06-15 12:34:30
您实际上并没有调用process_message函数。为此,您需要运行以下命令
process_message(some_variable)此外,您的函数没有return语句。在Python语言中,以return语句结尾的函数将返回None。
https://stackoverflow.com/questions/62381377
复制相似问题