python中传递多个参数时字典的键加引号的问题

python中传递多个参数时字典的键加引号的问题,第1张

python中传递多个参数时字典的键加引号的问题
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的严谨!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5711806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存