关于如何访问函数返回的简单问题

2024-05-13 10:21:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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”

我做错了什么?如何访问函数外部的数据

任何帮助或澄清都将不胜感激

非常感谢,


Tags: 函数fromimportclientmessagedatetimebinancemsg
2条回答

您实际上没有调用process_message函数。要做到这一点,你需要跑步

process_message(some_variable)

此外,您的函数没有return语句。在Python中,以return语句结尾的函数将返回None

所以原因是没有按预期工作,因为简言之,我错了:)

上面列出的函数是一个回调函数,它的全部工作是处理另一个函数接收到的消息,因此为了得到我想要的结果,我需要修改原始函数,而不是回调函数

在我发布问题之前,我将把这个问题归结为对函数的了解不够

谢谢你抽出时间

相关问题 更多 >