Python 默认参数
Python 允许定义一个函数,并将默认值分配给一个或多个正式参数。如果未向此类参数传递任何值,则 Python 使用此类参数的默认值。如果传递了任何值,则默认值将被传递的实际值覆盖。
Python 中的默认参数是在没有参数传递给函数调用时将使用的函数参数。
默认参数示例
以下示例显示了 Python 默认参数的用法。在这里,对函数的第二次调用不会将值传递给 “city” 参数,因此将使用其默认值 “Hyderabad”。
# Function definition
def showinfo( name, city = "Hyderabad" ):
"This prints a passed info into this function"
print ("Name:", name)
print ("City:", city)
return
# Now call showinfo function
showinfo(name = "Ansh", city = "Delhi")
showinfo(name = "Shrey")
它将产生以下输出 -
Name: Ansh
City: Delhi
Name: Shrey
City: Hyderabad
City: Delhi
Name: Shrey
City: Hyderabad
示例:调用不带关键字参数的函数
让我们看另一个为函数参数分配默认值的示例。函数 percent() 有一个名为 “maxmarks” 的默认参数,该参数设置为 200。因此,我们可以在调用函数时省略第三个参数的值。
# function definition
def percent(phy, maths, maxmarks=200):
val = (phy + maths) * 100/maxmarks
return val
phy = 60
maths = 70
# function calling with default argument
result = percent(phy, maths)
print ("percentage:", result)
phy = 40
maths = 46
result = percent(phy, maths, 100)
print ("percentage:", result)
在执行时,此代码将生成以下输出 -
percentage: 65.0
percentage: 86.0
percentage: 86.0
可变对象作为默认参数
Python 在定义函数时计算一次默认参数,而不是在每次调用函数时计算。因此,如果使用可变的默认参数并在给定函数中对其进行修改,则在后续函数调用中将引用相同的值。
那些在创建后可以更改的 Python 对象称为可变对象。
例
下面的代码解释了如何在 Python 中使用可变对象作为默认参数。
def fcn(nums, numericlist = []):
numericlist.append(nums + 1)
print(numericlist)
# function calls
fcn(66)
fcn(68)
fcn(70)
在执行上述代码时,它将产生以下输出 -
[67]
[67, 69]
[67, 69, 71]
[67, 69]
[67, 69, 71]