Python函数参数详解:可变参数、关键字参数和默认参数
发布时间:2023-07-05 21:09:15
在Python中,函数的参数分为四种类型:位置参数、可变参数、关键字参数和默认参数。本文将详细介绍可变参数、关键字参数和默认参数。
可变参数是指在函数调用时,传入的参数个数是可变的。在Python中,可变参数有两种形式:*args和**kwargs。
*args是用来接收任意多个位置参数的元组,这意味着在函数调用时,可以传入任意个参数,并将这些参数存放在一个元组中。例如:
def func1(*args):
for item in args:
print(item)
func1(1, 2, 3) # 输出:1 2 3
func1("apple", "banana", "cherry") # 输出:apple banana cherry
**kwargs是用来接收任意多个关键字参数的字典,这意味着在函数调用时,可以传入任意个键值对,并将这些键值对存放在一个字典中。例如:
def func2(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
func2(name="Jack", age=20) # 输出:name: Jack age: 20
func2(city="New York", country="USA") # 输出:city: New York country: USA
关键字参数是指在函数调用时,通过指定参数名称来传递参数值。在Python中,关键字参数必须位于位置参数之后。例如:
def func3(name, age):
print(f"Name: {name}")
print(f"Age: {age}")
func3("Tom", 25) # 输出:Name: Tom Age: 25
func3(age=30, name="John") # 输出:Name: John Age: 30
默认参数是在函数定义时就给定默认值的参数。在函数调用时,如果不指定该参数的值,就会使用默认值。例如:
def func4(name, age=18):
print(f"Name: {name}")
print(f"Age: {age}")
func4("Tom") # 输出:Name: Tom Age: 18
func4("John", 30) # 输出:Name: John Age: 30
需要注意的是,默认参数必须在位置参数之后。如果默认参数位于位置参数之前,就会导致调用函数时无法正常传参。
总结:在Python中,有四种函数参数类型:位置参数、可变参数、关键字参数和默认参数。可变参数用*args表示,可以接收任意个位置参数的元组;关键字参数用**kwargs表示,可以接收任意个关键字参数的字典;默认参数是在函数定义时给定默认值的参数;关键字参数必须位于位置参数之后。
