[英]How can I make this calculation function with a lot of parameters more readable?
我建立了一个用于计算特定销售的销售佣金的计算器。
佣金的价值取决于许多因素。 因此,必须传递给我用来计算佣金的函数的参数也很大。 函数本身也很令人困惑,因为某些因素是布尔值(新客户,fe),而某些因素是浮点数(运输成本,fe)。
如何使这类“计算函数”更具可读性? 我应该把它们分成小块吗?
这是功能,尽管我也在寻找如何处理这类功能的更一般建议。
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
您可以将其分解,尽管可能没有必要。 这部分取决于代码的含义是否有意义。
否则,您可以添加文档,esp docstrings ,如果您确实想疯狂使用它甚至可以使用类型提示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.