我是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()缺少1个必需的位置参数:'msg'”
如果我使用参数调用函数:
process_message(msg)
我得到:未定义名称“msg”
我做错了什么?如何访问函数外部的数据
任何帮助或澄清都将不胜感激
非常感谢,
您实际上没有调用
process_message
函数。要做到这一点,你需要跑步此外,您的函数没有
return
语句。在Python中,以return
语句结尾的函数将返回None
所以原因是没有按预期工作,因为简言之,我错了:)
上面列出的函数是一个回调函数,它的全部工作是处理另一个函数接收到的消息,因此为了得到我想要的结果,我需要修改原始函数,而不是回调函数
在我发布问题之前,我将把这个问题归结为对函数的了解不够
谢谢你抽出时间
相关问题 更多 >
编程相关推荐