Я хотів би вдосконалити спосіб написання цього коду. Зараз у мене є шість методів, які майже копіюють-вставляють, змінюється лише один рядок. Як я можу зробити загальний метод і залежно від властивості введення даних змінювати обчислення? Я думав використовувати функціональне програмування, щоб досягти цього, але не знаю, як це зробити правильно.
Метод отримання об'єкта dict. Потім цей об’єкт перетворюється на JSON. midМінлива зберігання JSON з midrate для валюти від зовнішнього API, він повинен бути перед циклом інакше API буде викликатися в кожній ітерації і це уповільнює процес багато! Потім у forциклі я повторюю дані з вхідних даних. Єдина відмінність методів - це розрахунок перед внесенням його в список..append(mid_current - bankMSell)
def margin_to_exchange_rate_sell(data):
j = data.to_JSON()
list_p = []
mid = midrate.get_midrate(j["fromCurrency"][0])
for idx, val in enumerate(j['toCurrency']):
try:
mid_current = 1/get_key(mid, j['toCurrency'][idx])
bankMSell = float(j['sellMargin'][idx])
list_p.append(mid_current - bankMSell)
except Exception as e:
list_p.append(0)
print(str(e))
return list_p
Ще один із методів:
def margin_to_exchange_rate_buy(data):
j = data.to_JSON()
list_p = []
mid = midrate.get_midrate(j["fromCurrency"][0])
for idx, val in enumerate(j['toCurrency']):
try:
mid_current = 1/get_key(mid, j['toCurrency'][idx])
bankMSell = float(j['sellMargin'][idx])
list_p.append(mid_current + bankMSell)
except Exception as e:
list_p.append(0)
print(str(e))
return list_p
list_p.append()лінія, для тих, хто не дуже візуально відрізняється кодом. :))