我试图使用一个变量的值,这是一个字符串,作为参数,我不断得到“'Str'not callable'错误。我没有使用str作为变量名,我可以使代码与eval
一起工作,但是,我读到了关于eval
的可怕警告,所以不确定该怎么办。我的代码在下面
from time import sleep
from binance.client import Client
from binance.websockets import BinanceSocketManager
class s33():
def __init__(self):
self.client = Client("", "")
self.bm = BinanceSocketManager(self.client)
def process_trade_message(self, message):
global count, conn_key
print(count)
if count >= 10:
print('closing socket')
# use either stop_socket or close, or both
self.bm.stop_socket(conn_key)
self.bm.close()
# reset the count
count = 0
def go(self, sockb):
global count, conn_key
print(sockb['1'])
sock = 'self.bm.'+sockb['1']
print(sock)
count = 0
conn_key = sock(self.process_trade_message)
self.bm.start()
if __name__ == '__main__':
while True:
s = s33()
socka = {'1':'start_miniticker_socket'}
s.go(socka)
sleep(20)
print('sleeping')
我读过人们推荐使用dict的文章,所以我将dict作为arg传递,并尝试提取函数中的字符串,这是下面的代码。我试图提取字符串并将其作为参数传递给函数s.go(socka['1']
,我尝试将变量作为arg传递,socka = 'start_miniticker_socket'
,如果我使用eval('self.bm'+socka)
,我就可以使用它了。我尝试了百分号,但运气不好。不知道不使用eval怎么做。我仍然是相当新的,找不到一个替代的答案后,几个小时的搜索工作。任何帮助都将不胜感激
我认为人们建议使用dict的意思是这样的:
相关问题 更多 >
编程相关推荐