初学 Python,求教:
def print_dict(**person):
print(person)
print_dict( a ='jack', b ='rose')
# {'a': 'jack', 'b': 'rose'}
形参前加了两个星号,这样 Python 会创建一个字典,用来装实参。我有点不明白的是为什么调用函数的时候,参数是: a = "Jack"
而不是 "a" = "Jack"
, a既然是要放在字典中的键,为什么不带引号?
求解惑,非常感谢!
“语法就是这样,没有为什么”——这样的说法实在是憋屈死我了。幸好终于找到了自己能理解和接受的答案。
查了很多资料,我的理解是,这种语法是dict constructor构建字典的一种方式:如果没有给出位置参数,则创建空字典。如果给出了位置参数并且它是一个映射对象,则将使用与映射对象相同的键值对创建一个字典。
这里的情况,就是通过构造器创建字典。而构造器确实就就这样创建的,正如大家说的,语法就是这样,折腾一圈又回来了哈哈,但是很值得。
参考:
python 文档 4.10. Mapping Types — dict 链接在这里:https://docs.python.org/3/lib...
以及:
https://docs.python.org/3/tut...
理解的也不是很透彻,欢迎补充和更正。