Как поместить строку для атрибута в функцию - PullRequest
0 голосов
/ 23 января 2019

Мне нужна помощь с атрибутом функции в Python. У меня есть данные, которые выглядят так: exch1 = data['Info']['Exchange1'] и это равняется, например, poloniex. Мне нужно получить exch1_object, который должен выглядеть следующим образом ccxt.poloniex(), но когда я пытаюсь это сделать, я получаю ошибку:

AttributeError: module 'ccxt' has no attribute 'str'
import ccxt
exch1 = data['Info']['Exchange1']
exch2 = data['Info']['Exchange2']
exch1_object = exch1.lower()
exch1_object = ccxt.str(exch1_object)()

1 Ответ

0 голосов
/ 23 января 2019

Вы можете попробовать использовать getattr():

# 'exch1_object' should be a string
func = getattr(ccxt, exch1_object)
exch1_object = func()

Будет получена функция от модуля ccxt, имя которого находится внутри переменной exch1_object (которая должна быть строкой).

Это также может быть сокращено до:

exch1_object = getattr(ccxt, exch1_object)()

вам нужно будет решить, что для вашего случая яснее и понятнее.


Так, например, эти строки:

exch1_object = 'poloniex'
exch1_object = getattr(ccxt, exch1_object)()

даст те же результаты, что и:

exch1_object = ccxt.poloniex()
...