我做了一个计算器,用来计算某笔买卖的佣金。你知道吗
佣金的价值取决于许多因素。因此,必须传递给我计算佣金的函数的参数也非常大。函数本身也是非常混乱的,因为一些因素是布尔值(newcustomer,f.e.),一些是浮动值(transportcosts,f.e.)。你知道吗
如何使这些“计算函数”更具可读性?我应该把它们分成小块吗?你知道吗
这里是函数,尽管我也在寻找关于如何处理这类函数的更一般的建议。你知道吗
def get_provision_sales(
verkaufspreis_hw,
einkaufspreis_hw,
vk_software,
ek_software,
bonafide,
laufzeit,
abloese,
gebraucht,
neukunde,
spedition,
sonstige_kosten,
provision_pct = 0.33,
service_pct=0.035,
solutions=False ):
if spedition:
spedition_amount = 89.99
else:
spedition_amount = 0
verkaufspreis_hw = verkaufspreis_hw or 0
if vk_software > 0:
software_mod = 0.7
else:
software_mod = 1
if not bonafide:
provision_modifier = 0.76
else:
provision_modifier = 1
if neukunde:
provision_pct = 0.27
laufzeit = laufzeit or 0
abloese = abloese or 0
if gebraucht:
db_modifier = 1
sonstige_kosten = 0
deckungsbeitrag = 0.6 * float(verkaufspreis_hw)
else:
db_modifier = 0.85
deckungsbeitrag = float(verkaufspreis_hw) - ( float(einkaufspreis_hw) + float(abloese) + float(spedition_amount) )
provision_sales = (deckungsbeitrag * db_modifier + float(sonstige_kosten)) * provision_pct * provision_modifier
provision_sales += software_mod*0.15*(float(vk_software)-float(ek_software))
return provision_sales
你可以把它拆散,尽管那可能没有必要。这在一定程度上取决于代码的含义是否合理。你知道吗
否则,您可以添加文档,尤其是docstrings,如果您真的想发疯的话,甚至可以使用type hinting
相关问题 更多 >
编程相关推荐