我很难理解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 ''})
此声明再次遵循类似的模式。如果有人能解释这里发生了什么,我将非常感激。
谢谢你, 体式
答案 0 :(得分:0)
双冒号不做任何事情。它只是格式字符串的固定部分。
**
表示法允许从dict
指定关键字参数。这是一个简单,类似的例子,应该清楚这一点。我将dict
分配给一个变量,而不是在线使用它,以使其更明显地发生了什么:
>>> vals = {"a":"w", "b":"x", "c":"y", "d":"z"}
>>> "{a}::{b} {c} {d}".format(**vals)
'w::x y z'
>>>
如您所见,format
只是替换vals
给出的关键字参数中的值。