def bdild(first,last,**user_info): '''创建一个字典,其中包含我们知道的有关用户的一切信息''' profile= {} profile['姓:'] = first profile['名'] = last#把名和姓加入字典 for key,value in user_info.items(): profile[key] = value #遍历字典user_info中的键值对,并将每个键值对都加入到字典profile中 return profile #将字典profile返回给函数调用行 #错误 user_profile = build_profile('周', '杰伦', '地址'='海外', '领域'='音乐') #正确 user_profile = build_profile('周', '杰伦', 地址='海外', 领域='音乐')
使用错误的写法时,赋值 ‘字符串’=‘另一个字符串’
如下报错:
File ".code.tio", line 13 '地址'='海外', ^ SyntaxError: keyword can't be an expression
我的理解是:
说明 ‘字符串’=‘另一个字符串’,这种键值对的对应关系脱离字典不能独立存在。
在对一个字典 *** 作时我们可以
dict = {} dict['地址'] = '海外'#已经明确了对dict *** 作
所以python在这里规定了:函数输入键值对当脱离字典时,形式是:
build_profile('周', '杰伦', 地址='海外', 领域='音乐')
然后python通过内建空字典后将实参加入将其转换为
‘变量名’=‘字符串’的字典键值对格式来使用。
dict{'地址'='海外', '领域'='音乐'}
输入函数的键值对,先是 变量=‘字符串’ 的形式,
pyhon将会在内部转化为字典的键值对,但这个转换过程会在python内部进行,我们看不见过程罢了。
本质上前后都是键值对,都是‘字符串’=‘字符串’,仅仅是为了在逻辑上不要错误才重新规定了这种输入方式。
由此可见python的严谨!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)