मैं इस कोड को लिखने के तरीके में सुधार करना चाहूंगा। अभी मेरे पास छह तरीके हैं जो लगभग कॉपी-पेस्ट हैं, केवल एक लाइन बदल रही है। मैं एक सामान्य विधि कैसे बना सकता हूं और गणना बदलने के लिए डेटा इनपुट की संपत्ति पर निर्भर करता है? मैं इसे प्राप्त करने के लिए कार्यात्मक प्रोग्रामिंग का उपयोग करने के बारे में सोच रहा था, लेकिन मुझे यकीन नहीं है कि इसे ठीक से कैसे किया जाए।
विधि को एक वस्तु प्राप्त हो रही है। फिर इस ऑब्जेक्ट को JSON में बदल दिया जाता है। midचर बाहरी एपीआई से मुद्रा के लिए midrate साथ एक JSON भंडारण किया जाता है, यह होना चाहिए इससे पहले कि पाश अन्यथा एपीआई हर चरण में बुलाया जाएगा और इस प्रक्रिया में बहुत कुछ नीचे इस धीमा कर देती है के लिए! फिर 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()रेखा है, जिनके लिए अलग-अलग कोड को नेत्रहीन रूप से अलग करने की आवश्यकता नहीं है। :))