在 python 中为函数中的参数分配默认值有什么好处

What is the benefit of using assigning a default value to a parameter in a function in python

Python 允许我们默认为参数设置一个值。以下示例摘自 A smarter way to learn python by Mark Myers.

def calc_tax(sales_total,tax_rate=0.04):
    print(sales_total * tax_rate)

我不明白当我们这样做时它有什么用:

def calc_tax(sales_total):
    print(sales_total*0.04)

默认参数是一种与语言无关的功能,旨在帮助程序员。 让我们考虑你的例子

def calc_tax(sales_total,tax_rate=0.04):
    print(sales_total * tax_rate)

我们可以调用函数

calc_tax(100)

(请注意,我什至不必提及 0.04,因为该函数会自动采用默认值) 和

calc_tax(100,0.09)

在第一种情况下,使用默认值 tax_rate 即 0.04,您得到与

相同的答案
print(sales_total*0.04)

现在,如果您想在任何时候更改此值,比如更改为 0.09,那么根据您的方法,我们将不得不转到源代码并修改函数。有时这并不完全可行,或者可能不像您提供的示例那么简单,例如在函数中多次使用此 tax_rate 的情况。

如果您 100% 确定一个值永远不会改变,对于像 pi 这样的常量,那么在这种情况下它们不会传递到函数参数中,但对于其他情况,使用默认参数既简单又高效.

因为在做的时候:

def calc_tax(sales_total,tax_rate=0.04):
    print(sales_total * tax_rate)

你可以这样做:

calc_tax(100)

然后这里 tax_rate 是一个分配给默认值的参数,因此可以通过以下方式更改它:

calc_tax(any thing here,any thing here)

或:

calc_tax(any thing here,tax_rate=any thing here)

所以另一方面,这段代码:

def calc_tax(sales_total):
    print(sales_total*0.04)

只能做到:

calc_tax(any thing here)

因为没有第二个参数