有时候,由于预先不知道函数需要接受多少个实参,Python允许函数从调用语句中收集任意数量的实参。
code 1:
def make_pizza(*toppings):
"""打印顾客点的所有配料"""
print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')
('pepperoni',)
('mushrooms', 'green peppers', 'extra cheese')
形参名*toppings
中的*
让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中。
有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。
code 2:
def build_profile(first, last, **user_info):
"""创建一个字典,其中包含有关用户的一切信息"""
profile = {}
profile['first_name'] = first
profile['last_name'] = last
for key, value in user_info.items():
profile[key] = value
return profile
user_profile = build_profile('albert', 'einstein',
location='princeton',
field='physics')
print(user_profile)
{'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}
形参**user_info
中的**
让Python创建一个名为user_info的空字典,并将收到的所有名称—值对都封装到这个字典中。
参考资料:
《Python Crash Course》