传递任意数量的实参和传递任意数量的关键字实参
- *args:表示用来接收任意数量的实参,其中,形参*args的星号会让Python创建一个名为args的空元组,并将接收到的任意数量的实参存储在这个元组中。
- **kwargs:表示用来接收任意数量的关键字实参,其中,形参**kwargs的星号会让Python创建一个名为kwargs的空字典,并将接收到的任意数量的关键字实参存储在这个字典中。
传递任意数量的实参
Python中,可以向函数传递任意数量的实参,只要我们在形参前面加上一个星号(*)即可。
常写为:*args,args全称为arguments,有参数的意思。
例如:一个用来制作披萨的函数,事先并不知道顾客需要我们放多少配料,那么我写一个形参*toppings就可以了
def make_pizza(*toppings):
"""打印顾客点的所有配料"""
print(toppings)
注意:形参名*toppings中的星号会让Python创建一个名为toppings的空元组,并将收到的所有值封装在这个元组中。
结合使用位置实参和任意数量实参
如果函数需要接受不同类型的实参,可以将接收任意数量实参的形参放在最后。
例如:客人定制披萨需要事先告知披萨尺寸
def make_pizza(size,*toppings):
"""概述要制作的披萨"""
print(f"\nMaking a {size}-inch pizza with the following toppings:")
for topping in toppings:
print(f"-{topping}")
使用任意数量的关键字实参
连续两个星号加上形参表示接收任意数量的关键字实参。
常见写法:**kwargs,全称Keyword Arguments,表示关键字参数。
例如:创建一个接收用户信息的函数
def build_profile(first,last,**user_info):
"""创建一个字典,其中包含我们知道的有关用户的一切"""
user_info['first_name'] = first
user_info['last_name'] = last
return user_info
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/122885.html