我想改进这段代码的编写方式。现在,我有六种几乎是复制粘贴的方法,只有一行正在更改。如何制作通用方法,并根据数据输入的属性更改计算?我当时在考虑使用函数式编程来实现这一目标,但是我不确定如何正确地做到这一点。
该方法正在获取dict对象。然后将此对象转换为JSON。 mid
变量正在从外部API存储具有中等汇率的JSON,它必须在for循环之前,否则将在每次迭代中调用该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,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