websocket 为什么python中的getter在这段代码中不起作用[已关闭]

nue99wik  于 2022-12-23  发布在  Python
关注(0)|答案(1)|浏览(120)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
14小时前关门了。
Improve this question
我在python中写了一段代码,为了打开一个webstock频道并获取数据。然后我想在数据更新时打印数据。我已经在python中通过property的方式实现了getter。下面是我的类:

class Liveohlcv:

   def __init__(self):
       self.ohlcvBook = None

   @property
   def value(self):
       return self.ohlcvBook

   @value.getter
   def value(self):
       return self.ohlcvBook

   async def getLiveohlcv(self):
       exchange = ccxtpro.binanceusdm({'newUpdates': False})
       self.ohlcvBook = await exchange.watch_ohlcv('BTC/USDT', timeframe='1m')
       # ohlcvBook = await exchange.watch_ticker('BTC/USDT',)
       print('get ohlcv')

       print(self.ohlcvBook)
       print(self.ohlcvBook[len(self.ohlcvBook) - 1])

   asyncio.run(getLiveohlcv(self))

我在这里使用这个类:

liveohlcv = Liveohlcv()
print('create liveolhcv')
print(liveohlcv)

print(liveohlcv.value())
# asyncio.run(liveohlcv.getLiveohlcv())t

while True:
    current_olhcv = liveohlcv.value()
    print('create current_olhcv')

    print(current_olhcv)
    # print(current_olhcv[len(current_olhcv) - 1])

    time.sleep(2)
    print(time.time())

    if len(current_olhcv) != 0:
        print(current_olhcv[len(current_olhcv) - 1])

但它会导致这个错误:

print(liveohlcv.value())
    TypeError: 'NoneType' object is not callable

你能告诉我怎么解吗?
先谢了

8ehkhllq

8ehkhllq1#

您可以像这样定义getter,第二个getter是不需要的(这里有一个关于https://realpython.com/python-property/的不错的阅读):

@property
   def value(self):
       return self.ohlcvBook

并像这样使用它(它是一个属性,而不是函数):

liveohlcv.value

相关问题