我有那个变量
data = {
'username' : self.username,
'attributes' : self._get_attrs(),
}
当我像**数据一样引用它时意味着什么?
答案 0 :(得分:1)
**
中的 **data
是Python中的字典解包运算符。见What is the name of **
in python?
来自help('CALLS')
:
如果语法" **表达式"出现在函数调用中, "表达"必须评估映射,其内容是 被视为额外的关键字参数。在关键字的情况下 出现在"表达"并且作为显式关键字参数,a "类型错误"异常被提出。
请参阅Understanding kwargs in Python。
还有PEP: 448 -- Additional Unpacking Generalizations:
>>> {**{'a': 1, 'b': 2}, **{'a': 3, 'c': 4}}
{'b': 2, 'a': 3, 'c': 4}
答案 1 :(得分:0)
**
扩展您的词典。例如:
def func(username=None, attributes=None):
print(username)
data = {
'username' : "Bob",
'attributes' : {},
}
func(**data)
# results in "Bob"
它也可用于收集关键字参数(kwargs),如this question about *args and **kwargs中所示。