このコードの記述方法を改善したいと思います。今私はほとんどコピーペーストである6つの方法を持っています、1行だけが変更されています。どのようにしてジェネリックメソッドを作成し、データ入力のプロパティに応じて計算を変更できますか?それを実現するために関数型プログラミングを使用することを考えていましたが、適切に行う方法がわかりません。
メソッドはdictオブジェクトを取得しています。次に、このオブジェクトはJSONに変換されます。mid変数は、外部APIから通貨midrateで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
もう1つの方法:
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()コードを視覚的に比較することにあまり慣れていない人のための行です。)