1.解包函数
def func(*args):
print(args)
func(1, 2, 3) # 输出结果为:(1, 2, 3)
在函数定义时,*args
表示接受任意数量的位置参数,并将它们打包成一个元组。
2.解包可迭代对象
numbers = [1, 2, 3]
print(*numbers) # 输出结果为:1 2 3
在函数调用时,*
可以用来解包可迭代对象,将其中的元素作为单独的位置参数传递给函数。
3.接受任意数量的关键字参数
def func(**kwargs):
print(kwargs)
func(a=1, b=2, c=3) # 输出结果为:{'a': 1, 'b': 2, 'c': 3}
在函数定义时,**kwargs
表示接受任意数量的关键字参数,并将它们打包成一个字典。
4.接受任意数量的位置参数和关键字参数
def func(*args, **kwargs):
print(args)
print(kwargs)
func(1, 2, a=3, b=4) # 输出结果为:(1, 2) {'a': 3, 'b': 4}
在函数定义时,*args
和 **kwargs
可以结合使用,接受任意数量的位置参数和关键字参数,并将它们打包成元组和字典。
5.用于函数定义时的参数
def func(a, b, *, c):
print(a, b, c)
func(1, 2, c=3) # 输出结果为:1 2 3
在函数定义时,*
可以用来指定参数后面的参数必须使用关键字传递,不能使用位置传递。