按变量值过滤。 .filter(** {filter_name:filter_value})如何工作?

时间:2019-07-16 15:31:13

标签: python django

这就是魔术:

filter_name = 'some_field_from_model'
filter_value = 'some_val'
Object.filter(**{filter_name: filter_value})

有效。但是它是如何工作的呢? **是做什么的?我着迷,但我一点都不明白。有人可以解释这里发生了什么吗?非常感谢。 Python newb在这里。

1 个答案:

答案 0 :(得分:2)

在函数调用中,在**之前使用dictdict拆包,就像使用命名参数一样。它与指针无关。
范例:function(**{"a":1, "b":42))就像function(a=1, b=42)