我正在学习从书中格式化表达式,我有一个问题:
'{num} = {title}'.format(**dict(num=7, title='Strings'))
在上面的行中为什么在dict之前有两个*?它们代表什么?
这本书甚至没有提到这种格式化的表达方式,突然间它出现在例子中!!
答案 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()
方法与普通函数类似,可以直接与关键字参数一起使用。值7
和Strings
将被放入字典中,然后立即再次删除。