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]
广告
© . All rights reserved.