我建立了一个用于计算特定销售的销售佣金的计算器。
佣金的价值取决于许多因素。因此,必须传递给我用来计算佣金的函数的参数也很大。函数本身也非常令人困惑,因为某些因素是布尔值(例如新客户),而另一些则是浮动因素(例如运输成本)。
如何使这类“计算函数”更具可读性?我应该把它们分成小块吗?
这里是功能,尽管我也在寻找有关如何处理这类功能的更一般的建议。
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
答案 0 :(得分:0)
您可以将其分解,尽管可能没有必要。在某种程度上,这取决于代码的含义。
否则,您可以添加文档,尤其是docstrings,如果您确实想发狂,甚至可以使用type hinting