Python - 默认参数



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

示例:调用不带关键字参数的函数

让我们看另一个为函数参数分配默认值的示例。函数 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

可变对象作为默认参数

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]