1.使用任意数量的关键字实参
有时候需要接受任意数量的实参,但是预先不知道传递给函数的会是什么样子的信息,在这种情况下,可以将函数编写成能够接受任意数量的键值对,调用语句提供了多少就接受多少。
#录入用户信息,**user_info让python穿件一个名为user_info的空字典,并将收到的名称-数值对都封装到这个字典中
def users_info(first_name,last_name,**user_info):
info={}
#录入已经指明的信息
info['first_name']=first_name
info['last_name']=last_name
#录入该用户的其他信息
for key,value in user_info.items():
info[key]=value
#输出用户信息
print(info)
users_info('Da','Ming',hobbies=['reading','shopping'],age=12)
{'first_name': 'Da', 'last_name': 'Ming', 'hobbies': ['reading', 'shopping'], 'age': 12}
2.动手试一试
8-12:
#*food_name创建的是元组,可以将接收到的参数都封装到这个元组里面
def food(*food_name):
print('三明治需要的食材:')
for name in food_name:
print(name)
food('火腿肠','面包')
food('火腿肠','面包','西红柿')
food('火腿肠','面包','西红柿','培根')
8-13:
def build_profile(first_name,last_name,**user_info):
info={}
#录入已经指明的信息
info['first_name']=first_name
info['last_name']=last_name
#录入该用户的其他信息
for key,value in user_info.items():
info[key]=value
#输出用户信息
print(info)
build_profile('Da','Ming',hobbies=['reading','shopping'],age=12,profession='计算机'
8-14:
def car_info(mader,car_size,**car_info):
info={}
info['mader']=mader
info['size']=car_size
for key,value in car_info.items():
info[key]=value
print(info)
car_info('subaru','outback',color='black',tow_package=True)