def function(*param, **param) 解析 | Python

Roselani ·
更新时间:2024-11-10
· 570 次阅读

一、def function(*param)—传递任意数量的实参

有时候,由于预先不知道函数需要接受多少个实参,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的空元组,并将收到的所有值都封装到这个元组中。

二、def function(**param)—使用任意数量的关键字实参

有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。

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》


作者:Sany 何灿



def param Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号