在学习使用任意数量关键字实参时,遇到实参中名称值对中名称不加引号情况。形参中**的作用是创建一个空字典,作为字典中的键值对中的键(location,field)为什么不加引号呢?主要原因是使用**创建字典和使用dict()创建字典效果一样,即:
dict_demo = dict(str1=value1,str2=value2,str3=value3),这里的str1,str2,str3都是不加引号的
下面为实例:
def build_profile(first, last, **user_info):
"""创建一个字典,其中包含用户的信息。"""
user_info['first_name'] = first
user_info['last_name'] = last
return user_info
user_profile = build_profile('albert', 'einstein',location='princeton',field='physics')
print(user_profile)
**user_info在这里相当于:
user_info = dict(location='princeton',field='physics')
输出结果:
{'location': 'princeton', 'field': 'physics', 'first_name': 'albert', 'last_name': 'einstein'}