Saya ingin memperbaiki cara kode ini ditulis. Saat ini saya memiliki enam metode yang hampir sama, hanya satu baris yang berubah. Bagaimana saya bisa membuat metode generik dan tergantung pada properti input data untuk mengubah perhitungan? Saya berpikir untuk menggunakan pemrograman fungsional untuk mencapai itu, tetapi saya tidak yakin bagaimana melakukannya dengan benar.
Metode ini mendapatkan objek dict. Kemudian objek ini ditransformasikan menjadi JSON. The midvariabel menyimpan JSON dengan midrate untuk mata uang dari API eksternal, itu harus sebelum untuk loop sebaliknya API akan dipanggil di setiap iterasi dan memperlambat ini turun proses banyak! Kemudian dalam forloop, saya beralih melalui data dari input. Satu-satunya perbedaan antara metode adalah perhitungan sebelum memasukkannya dalam daftar..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
Salah satu metode lain:
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()baris, bagi mereka yang tidak mahir dalam membedakan kode secara visual. :))