关于如何访问函数的 return 的简单问题
Easy question regarding how to access the return of a function
我是 python/programming 的新手,所以这可能是一个简单的解决方案。我只是想弄清楚如何输出函数?
我使用以下:
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)
我收到以下信息:
函数 process_message 在 0x03A919B8
如果我自己调用函数:
process_message()
我收到:"process_message() missing 1 required positional argument: 'msg'"
如果我用参数调用函数:
process_message(msg)
我得到:名称 'msg' 未定义
我做错了什么?我将如何访问函数之外的数据?
如有任何帮助或澄清,我们将不胜感激,
非常感谢,
您实际上并没有调用 process_message
函数。为此,您需要 运行
process_message(some_variable)
此外,您的函数没有 return
语句。在 Python 中,没有 return
语句结束的函数将 return None
.
所以原因是没有按预期工作,简而言之,我错了:)
上面列出的函数是一个回调函数,它的全部工作是处理另一个函数接收到的消息,所以为了得到我想要的结果,我需要修改原来的函数,而不是回调函数.
在我发布问题之前,我会把这个问题改写成对功能了解不够。
感谢您的宝贵时间。
我是 python/programming 的新手,所以这可能是一个简单的解决方案。我只是想弄清楚如何输出函数?
我使用以下:
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)
我收到以下信息: 函数 process_message 在 0x03A919B8
如果我自己调用函数:
process_message()
我收到:"process_message() missing 1 required positional argument: 'msg'"
如果我用参数调用函数:
process_message(msg)
我得到:名称 'msg' 未定义
我做错了什么?我将如何访问函数之外的数据?
如有任何帮助或澄清,我们将不胜感激,
非常感谢,
您实际上并没有调用 process_message
函数。为此,您需要 运行
process_message(some_variable)
此外,您的函数没有 return
语句。在 Python 中,没有 return
语句结束的函数将 return None
.
所以原因是没有按预期工作,简而言之,我错了:)
上面列出的函数是一个回调函数,它的全部工作是处理另一个函数接收到的消息,所以为了得到我想要的结果,我需要修改原来的函数,而不是回调函数.
在我发布问题之前,我会把这个问题改写成对功能了解不够。
感谢您的宝贵时间。