** dict在python格式化表达式中的含义是什么?

时间:2015-12-19 00:05:43

标签: python

我正在学习从书中格式化表达式,我有一个问题:

'{num} = {title}'.format(**dict(num=7, title='Strings'))

在上面的行中为什么在dict之前有两个*?它们代表什么?

这本书甚至没有提到这种格式化的表达方式,突然间它出现在例子中!!

1 个答案:

答案 0 :(得分:0)

原则

Python函数允许关键字参数。例如这个函数:

def sub(a, b):
    return a - b

可以像这样调用:

>>> sub(b=10, a=4)
-6

如果你在字典中有参数:

>>> args = {'a': 4, 'b': 10}

您可以使用**语法来实现相同的目标:

>>> sub(**args)
-6

这称为解包,因为字典中的项目被单独用作参数。

您的示例

你的例子过于复杂。这可行:

'{num} = {title}'.format(num=7, title='Strings')

无需使用**和字典。 format()方法与普通函数类似,可以直接与关键字参数一起使用。值7Strings将被放入字典中,然后立即再次删除。