python attributeerror:'super'对象没有属性'testnet',但是在super上调用\uu dict \uuuuuuuu时会显示该属性?

nnsrf1az  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(431)
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, api_secret, requests_params=None, 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()

我有一个类,它继承了binance客户机来从其api读取数据。然后调用binancesocketmanager,它接收binance客户机的一个示例。但是,当我运行程序时,出现以下错误:

AttributeError: 'super' object has no attribute 'testnet'

但是当我打印的时候 super().__dict__ 在获取属性的测试方法中,它将testnet显示为super的属性:

{...,'testnet': False, 'timestamp_offset': -8}

调用父方法(如 super().get_ticker() ,但是我在这里得到一个错误。

f0ofjuux

f0ofjuux1#

super() 不返回类本身,而是返回一个代理来调用超类方法,在这里讨论。
而不是 super() 尝试 self .

相关问题