Python& Django:**是什么意思

时间:2016-12-10 13:17:41

标签: python django django-rest-framework

可能我知道**

的以下用法

电源

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)

有人能给我一些暗示正在发生的事情

1 个答案:

答案 0 :(得分:1)

这与你的第二个例子相反。在函数定义中,**运算符收集所有命名参数并生成字典。在调用函数时,它需要一个字典并将其分解为命名参数

所以,如果你有

values = {'x': 1, 'y': 2}
f(**values)

相当于

f(x=1, y=2)