首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于如何访问函数的返回的简单问题

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

Stack Overflow用户
提问于 2020-06-15 12:31:31
回答 2查看 160关注 0票数 0

我是python/编程的新手,所以这可能是一个简单的解决方案。我只是想弄清楚如何输出函数?

我使用以下代码:

代码语言:javascript
复制
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按照预期开始流式传输数据。

因此,如果我从函数内部调用它,我可以看到函数的结果,但如果我尝试像这样(在函数外部)调用它,我会收到一个错误:

代码语言:javascript
复制
print(process_message)

我收到以下信息: 0x03A919B8处的函数process_message

如果我自己调用函数:

代码语言:javascript
复制
process_message()

我收到:"process_message()缺少1个必需的位置参数:'msg'“

如果我使用参数调用函数:

代码语言:javascript
复制
process_message(msg)

我得到:名称'msg‘未定义

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

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

非常感谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-19 11:38:35

所以原因是没有像预期的那样工作,因为简而言之,我错了:)

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

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

谢谢你抽出时间来。

票数 0
EN

Stack Overflow用户

发布于 2020-06-15 12:34:30

您实际上并没有调用process_message函数。为此,您需要运行以下命令

代码语言:javascript
复制
process_message(some_variable)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62381377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档