*args
:
*args
是一个用于接收不定数量的位置参数的特殊参数。- 当函数定义中使用
*args
时,它表示函数可以接受任意数量的位置参数,并将这些参数打包成一个元组传递给函数。 - 在函数内部,可以通过遍历或索引访问
args
元组中的每个参数。
def my_function(*args):
for arg in args:
print(arg)
my_function(1, 2, 3)
# Output: 1
# 2
# 3
**kwargs
:
**kwargs
是一个用于接收不定数量的关键字参数的特殊参数。- 当函数定义中使用
**kwargs
时,它表示函数可以接受任意数量的关键字参数,并将这些参数打包成一个字典传递给函数,其中字典的键是参数名,值是对应参数的值。
在函数内部,可以通过字典的键访问 kwargs
字典中的每个参数。
def my_function(**kwargs):
for key, value in kwargs.items():
print(key, value)
my_function(a=1, b=2, c=3)
# Output: a 1
# b 2
# c 3
当 *args
和 **kwargs
结合使用时
def my_function(*args, **kwargs):
print("Positional arguments (*args):")
for arg in args:
print(arg)
print("\nKeyword arguments (**kwargs):")
for key, value in kwargs.items():
print(f"{key}: {value}")
# 调用函数并传递位置参数和关键字参数
my_function(1, 2, 3, a=4, b=5, c=6)