Python允许定义带有默认值赋给一个或多个形式参数的函数。如果在函数调用时没有传递值给这样的参数,Python将使用默认值。如果有任何值被传递,则默认值将被实际传递的值覆盖。
Python中的默认参数是在函数调用时如果没有传递参数值则会被使用的函数参数。
默认参数的示例
下面的例子展示了Python默认参数的使用。在这个例子中,第二次调用函数时不会向"city"参数传递值,因此将使用其默认值"Hyderabad"。
def showinfo(name, city="Hyderabad"):
"这将在函数中打印传递的信息"
print("姓名:", name)
print("城市:", city)
return
showinfo(name="Ansh", city="Delhi")
showinfo(name="Shrey")
它将产生如下的输出:
姓名: Ansh
城市: Delhi
姓名: Shrey
城市: Hyderabad
示例:不使用关键字参数调用函数
让我们看看另一个给函数参数设置默认值的例子。函数percent()有一个名为"maxmarks"的默认参数,其默认值设为200。因此,我们可以省略在调用函数时第三参数的值。
def percent(phy, maths, maxmarks=200):
val = (phy + maths) * 100 / maxmarks
return val
phy = 60
maths = 70
result = percent(phy, maths)
print("百分比:", result)
phy = 40
maths = 46
result = percent(phy, maths, 100)
print("百分比:", result)
执行这段代码将产生如下的输出:
百分比: 65.0
百分比: 86.0
可变对象作为默认参数
Python在函数定义时计算默认参数的值,而不是在每次函数被调用时。因此,如果你使用一个可变的默认参数并在给定的函数内部修改它,随后的函数调用将引用相同的值。
那些在创建后可以更改的Python对象被称为可变对象。
示例
下面的代码解释了如何在Python中使用可变对象作为默认参数。
def fcn(nums, numericlist=[]):
numericlist.append(nums + 1)
print(numericlist)
fcn(66)
fcn(68)
fcn(70)
执行上述代码,它将产生如下的输出:
[67]
[67, 69]
[67, 69, 71]