Форум сайта python.su
0
Привет всем местным обитателям. Помогите разобраться.
Разбираюсь с модулем ccxt для получения информации о торгах на криптовалютных биржах и столкнулся с неизвестной мне проблемой, которую не могу решить самостоятельно.
Имеется функция get_market_pairs(), которая принимает строку с названием биржи. Затем в теле функции инициализируется переменная exchanges, которая благодаря встроенному в ccxt методу exchanges получает список всех поддерживаемых бирж и затем делает проверку на наличие указанной нами биржи в этом списке.
def get_market_pairs(exchange): exchanges = ccxt.exchanges if not exchange in exchanges: return "Exchange Not Found"
poloniex = ccxt.poloniex()
Отредактировано KindlySnake (Июль 7, 2019 14:48:04)
Офлайн
0
Однако, многовато лишнего я написал.
Вот более краткое объяснение:
Можно ли как-нибудь исполнить что-то подобное, учитывая, что параметром ‘method_name’ мы передаем всего лишь строку?
import module def function(method_name): module.method_name()
Отредактировано KindlySnake (Июль 7, 2019 18:18:32)
Офлайн
44
вы что, просто хотите изменить имя функции? если да то ..
from module import func as my_name
import module my_name = module.func
и вставьте ссылку на его url Отредактировано AD0DE412 (Июль 7, 2019 19:26:20)
Офлайн
0
AD0DE412
Я хочу таким образом выбирать метод, который будет срабатывать в функции. Т.е. передавать имя метода в виде строки, чтобы потом из функции вызывался метод с заданным мною названием.
Офлайн
44
https://pythonz.net/references/named/exec/
ps если подошло, опишите че по чем, я то же учусь )
и вставьте ссылку на его url Отредактировано AD0DE412 (Июль 7, 2019 20:12:12)
Офлайн
186
> Можно ли как-нибудь исполнить что-то подобное, учитывая, что параметром ‘method_name’ мы передаем всего лишь строку?
>>> class A: ... def metod(self): ... return 1 ... >>> a = A() >>> getattr(a, "metod")() 1
Офлайн
44
прикольно
я правильно понимаю если
... def metod(self, one, two): return one, two # то a = A() getattr(a, "metod")(one, two)
и вставьте ссылку на его url Отредактировано AD0DE412 (Июль 7, 2019 21:01:47)
Офлайн
0
Rodegast
Спасибо! Все-таки решение оказалось для меня не таким уж тривиальным, ибо про getattr я и вовсе не знал. Пришлось попотеть еще и над ответом.
Но, результат достигнут! 
Офлайн
14
если я правильно понял то вам getattr не требуется, все проще, переменную приравниваете к функции но не ставите скобок, т.е. не вызываете функцию, и тогда если вызвать переменную - выполнится функция
class demo: def func(self): print('lol') demo_obj = demo() var1 = demo_obj.func var1()
Офлайн