如何解决将数据从类内传递到def
运行binance.py
文件时,出现类似以下的错误。我正在上课发送数据。我该如何解决?
import websockets
from binance.client import Client
from binance.websockets import BinanceSocketManager
class BinanceFutures(object):
print("binance futures class")
# websocket start
futures_api_key = "oooo"
futures_secret_key = "ppppp"
client = Client(futures_api_key,futures_secret_key)
bm = BinanceSocketManager(client)
conn_key = bm.start_Trade_socket('BNBBTC',process_message)
bm.start()
def process_message(self,msg):
print("message type: {}".format(msg['e']))
print(msg)
# do something
if __name__ == "__main__":
print("binance main")
我得到的错误:
Traceback (most recent call last):
File "binancetest.py",line 6,in <module>
class BinanceFutures:
File "binancetest.py",line 13,in BinanceFutures
conn_key = bm.start_Trade_socket('BNBBTC',process_message)
NameError: name 'process_message' is not defined
解决方法
这就是说,您尚未定义名称process_message
,如果您在类或文件中的某个位置定义了该名称,错误将停止
您没有正确定义或使用Python class
。
我认为您需要这样做(未经测试)。我添加了一个__init__()
方法来在创建类实例时初始化该类。特别要注意的是,我是如何在传递给self.
的{{1}}参数上添加self.process_message
前缀的,因为它是bm.start_trade_socket()
的方法。
您可能还需要将class
设置为实例属性。 (即,bm
被引用的所有地方。)
self.bm
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。