如何解决Python AttributeError: 'super' 对象没有属性 'testnet',但是在 super 上调用 __dict__ 时会出现该属性?
from binance.client import Client
from binance.websockets import BinanceSocketManager
class Binance_Data(Client):
def __init__(self,api_key,api_secret,requests_params=None,tld='us'):
super().__init__(api_key,tld='us')
def data_stream_test(self,data):
print('------------------')
print(f"Event Title: {data['e']}")
print(f"Closing Price: {data['c']}")
print(convert_unix_to_utc(data['E']))
print('------------------')
def data_stream(self):
ds = BinanceSocketManager(super())
conn_key = ds.start_symbol_ticker_socket('XLMUSDT',data_stream_test)
ds.start()
我有这个类,它继承了币安客户端以从其 API 读取数据。然后我调用 BinanceSocketManager,它接收一个 binance Client 的实例。但是,当我运行该程序时,出现以下错误:
AttributeError: 'super' object has no attribute 'testnet'
但是当我在测试方法中打印 super().__dict__
以获取属性时,它将 testnet 显示为 super 的属性:
{...,'testnet': False,'timestamp_offset': -8}
我调用 super().get_ticker()
等父方法没有问题,但是我在这里遇到错误。
解决方法
super()
不返回类本身,而是返回调用超类方法的代理,讨论了 here。
不要尝试super()
,而是尝试self
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。