这在python中意味着什么?

这在python中意味着什么?,python,Python,我在理解python中的一些代码时遇到困难,如果您能提供帮助,我将不胜感激 condition = "{field}::{cast} {operator} {value}".format(**{ 'field': field_exp(field), 'cast': cast, 'value': json.dumps(parameter).replace('"', "'"), 'operator': operator}) 我无法理解这句话到底是怎么回事。“双冒号”

我在理解python中的一些代码时遇到困难,如果您能提供帮助,我将不胜感激

condition = "{field}::{cast} {operator} {value}".format(**{
    'field': field_exp(field),
    'cast': cast,
    'value': json.dumps(parameter).replace('"', "'"),
    'operator': operator})
我无法理解这句话到底是怎么回事。“双冒号”是做什么的?格式(**…是什么意思

代码中还有另一行:

condition = "jsonb_typeof({field}::jsonb) is {not} null".format(**{
    'field': field_exp(field),
    'not': 'not' if parameter else ''})
这句话同样遵循同样的模式。如果有人能解释一下这里发生了什么,我将不胜感激

谢谢,,
Asanas

双冒号没有任何作用。它只是格式字符串的固定部分

**
表示法允许从
dict
中指定关键字参数。下面是一个简单的类似示例,可以清楚地说明这一点。我将
dict
指定给变量,而不是将其串联使用,以使发生的事情更加明显:

>>> vals = {"a":"w", "b":"x", "c":"y", "d":"z"}
>>> "{a}::{b} {c} {d}".format(**vals)
'w::x y z'
>>>

如您所见,
format
只是替换了它的关键字参数中的值,这些参数由
vals

给出。您试过运行它吗?双冒号没有任何特殊作用。它只是意味着结果字符串中有两个冒号,就像您的第二个字符串有“jsonb_typeof”和“is”以及“null”一样在里面。非常感谢。我知道了!