Например, у вас есть код:
# Создаем объекты, представляющие различные биржи
crypto_exchange_1 = ccxt.binance() # создаем объект, представляющий биржу Binance
crypto_exchange_2 = ccxt.huobi() # создаем объект, представляющий биржу Huobi
crypto_exchange_3 = ccxt.kraken() # создаем объект, представляющий биржу Kraken
Возможно, вы хотите узнать, можно ли передавать список методов (бирж) в цикл for
и заменять переменные на основе этих методов. Такой подход может быть полезен, если у вас есть множество методов, которые необходимо вызывать, и вы хотите сократить количество кода.
Да, это возможно, используя функцию getattr()
. Эта функция возвращает значение атрибута объекта по его имени. В данном случае мы можем передать имя метода в виде строки и получить соответствующий метод.
Вот пример, как это можно сделать:
# Создаем список с именами методов (бирж)
exchanges = ['binance', 'huobi', 'kraken']
for exchange in exchanges: # перебираем список бирж
# Получаем метод из модуля ccxt по его имени
method = getattr(ccxt, exchange) # получаем метод из модуля ccxt по имени биржи
# Вызываем метод и сохраняем его в переменной crypto_exchange
crypto_exchange = method() # вызываем метод и сохраняем его в переменной crypto_exchange
# Ваш код здесь
В этом примере мы создаем список exchanges
, содержащий имена методов (бирж), которые мы хотим использовать. Затем мы перебираем этот список в цикле for
и используем функцию getattr()
для получения метода из модуля ccxt
. Затем мы вызываем полученный метод и сохраняем его в переменной crypto_exchange
.
Теперь вы можете использовать crypto_exchange
в вашем коде. Например, вы можете получить информацию о балансе вашего аккаунта на каждой из бирж:
for exchange in exchanges: # перебираем список бирж
method = getattr(ccxt, exchange) # получаем метод из модуля ccxt по имени биржи
crypto_exchange = method() # вызываем метод и сохраняем его в переменной crypto_exchange
balance = crypto_exchange.fetch_balance() # получаем баланс на бирже
print(exchange, balance) # выводим имя биржи и баланс
Заключение
Такой подход может быть полезен, если у вас есть множество методов, которые необходимо вызывать, и вы хотите сократить количество кода.