**引用变量

时间:2016-02-26 11:34:55

标签: python

我有那个变量

    data = {
        'username' : self.username,
        'attributes' : self._get_attrs(),
        }

当我像**数据一样引用它时意味着什么?

2 个答案:

答案 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中所示。