이 코드를 작성하는 방법을 개선하고 싶습니다. 지금은 거의 복사하여 붙여 넣는 6 가지 방법이 있으며 한 줄만 변경됩니다. 계산을 변경하기 위해 데이터 입력의 속성에 따라 일반적인 방법을 어떻게 만들 수 있습니까? 이를 달성하기 위해 함수형 프로그래밍을 사용하려고했지만 제대로 수행하는 방법을 잘 모르겠습니다.
이 메소드는 dict 오브젝트를 가져옵니다. 그런 다음이 객체는 JSON으로 변환됩니다. mid변수는 외부 API에서 통화 midrate와 JSON을 저장, 그것은해야합니다 전에 그렇지 않으면 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()코드를 시각적으로 비교하는 데 능숙하지 않은 사람들을위한 라인입니다 . :))