Python 按变量过滤';s值。.filter(**{filter\u name:filter\u value})是如何工作的?

Python 按变量过滤';s值。.filter(**{filter\u name:filter\u value})是如何工作的?,python,django,Python,Django,所以这个魔术: filter_name = 'some_field_from_model' filter_value = 'some_val' Object.filter(**{filter_name: filter_value}) 工作。但是它是如何工作的呢?**做什么?我很着迷,但我一点也不明白这一点。有人能解释一下这里发生了什么吗?谢谢。Python newb在这里。在函数调用中的dict之前使用**将dict解压,就像使用命名参数一样。它与指针没有任何关系。 例如:函数(**{“a”:

所以这个魔术:

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

工作。但是它是如何工作的呢?
**
做什么?我很着迷,但我一点也不明白这一点。有人能解释一下这里发生了什么吗?谢谢。Python newb在这里。

在函数调用中的
dict
之前使用
**
dict
解压,就像使用命名参数一样。它与指针没有任何关系。
例如:
函数(**{“a”:1,“b”:42))
类似于
函数(a=1,b=42)