可能我知道**
的以下用法电源
x ** y # x power y equivalent to pow(x,y)
传递无限数量的args
def sample(x, **other):
print(x, other.keys)
sample(x=2,y=3,z=4)
但是我不明白它的使用时间如下(Serializers)
def create(self, validated_data):
return Comment(**validated_data)
有人能给我一些暗示正在发生的事情
答案 0 :(得分:1)
这与你的第二个例子相反。在函数定义中,**
运算符收集所有命名参数并生成字典。在调用函数时,它需要一个字典并将其分解为命名参数
所以,如果你有
values = {'x': 1, 'y': 2}
f(**values)
相当于
f(x=1, y=2)