Python允许我们默认将值设置为参数。以下示例取自Mark Myers以更智能的方式学习python。
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)
然后这里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)
因为没有第二个论点
默认参数是一种语言无关的功能,旨在帮助程序员。让我们考虑你的例子
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这样的常量,那么在这种情况下它们不会传递给函数参数,但对于其他情况,使用默认参数更简单,更有效。