我来讲解一下Python中函数的可变参数。
什么是可变参数
可变参数指的是函数传入的参数个数不固定。在Python中,使用以下两种方式实现:
- 使用星号(
*
)作为前缀的参数,表示传入的参数是可变的位置参数。 - 使用双星号(
**
)作为前缀的参数,表示传入的参数是可变的关键字参数。
可变位置参数
在函数定义中,使用星号(*
)作为前缀的参数,可以实现可变位置参数。
以下是示例代码:
def print_args(*args):
for arg in args:
print(arg)
print_args(1, 2, 3)
输出结果为:
1
2
3
在调用print_args
函数时,可以传入任意个参数,并且这些参数都会被打包成一个元组(tuple)类型的变量,即args
。在上面的示例中,print_args
函数的参数中使用了*args
,表示可以传入可变个数的参数,所以我们可以传入3个参数1
、2
、3
。函数内部使用for循环遍历args
,打印出每一个传入的参数。
可变关键字参数
在函数定义中,使用双星号(**
)作为前缀的参数,可以实现可变关键字参数。
以下是示例代码:
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}={value}")
print_kwargs(name="Tom", age=20, sex="male")
输出结果为:
name=Tom
age=20
sex=male
在调用print_kwargs
函数时,可以传入任意个含有关键字的参数,并且这些参数都会被打包成一个字典(dict)类型的变量,即kwargs
。在上面的示例中,print_kwargs
函数的参数中使用了**kwargs
,表示可以传入可变个数的含有关键字的参数,所以我们可以传入三个参数:name="Tom"
、age=20
、sex="male"
。在函数内部,使用for循环遍历kwargs
,打印出每一个传入的关键字参数的名字以及对应的值。
可变参数的混合使用
在函数定义中,可以同时使用星号和双星号前缀的参数,实现混合类型的可变参数。在函数定义中,星号前缀的参数必须位于双星号前缀的参数之前。
以下是示例代码:
def print_all(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}={value}")
print_all("hello", "world", name="Tom", age=20)
输出结果为:
hello
world
name=Tom
age=20
在调用print_all
函数时,可以传入任意个位置参数和含有关键字的参数,并且这些参数都会被打包成一个元组(args
)和一个字典(kwargs
)类型的变量。在上面的示例中,我们传入了2个位置参数:"hello"和"world",并且传入了2个含有关键字的参数:name="Tom"
和age=20
。在函数内部,使用for循环遍历args
和kwargs
,打印出每一个传入的参数的值。
以上就是Python中函数的可变参数的完整攻略,希望能帮到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单谈谈Python中函数的可变参数 - Python技术站