def build_profile(first_name,last_name,**info):
info['first_name'] = first_name
info['last_name'] = last_name
for key in info.keys():
print(f"{key} : {info[key]}")
build_profile('Qin','Shuaige',location = 'xixian',university = "Ha'erbin",dream = 'engineer')
为什么这个输出后姓和名不是排在首位的,学习过程中遇到的,求解答
你知道了info在函数体内以字典的方式来赋键值对,那你肯定明白了**info是一个动态的参数,且它收集实参中相应位置的值作为字典的键值对。
所以调用函数build_profile时,location = 'xixian',university = "Ha'erbin",dream = 'engineer'这部分参数都会被info收集,并以字典的方式存储,
而你在函数体内的赋值是在收集之后的事,字典是有序的,所以first_name last_name就排在倒数第二,第一的位置上
python字典是用哈希表实现的,3.6版本开始字典是有序的,也就是说先加入字典的键值对会先被print,你在添加first_name和last_name之前其他信息已经在字典中了。