Emm*_*ali 0 python django django-rest-framework
可能我知道**的以下用途
力量
x ** y # x power y equivalent to pow(x,y)
Run Code Online (Sandbox Code Playgroud)
传递不定数量的参数
def sample(x, **other):
print(x, other.keys)
sample(x=2,y=3,z=4)
Run Code Online (Sandbox Code Playgroud)
但我不明白它何时用作以下(在序列化器中)
def create(self, validated_data):
return Comment(**validated_data)
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我那里发生了什么吗
这与你的第二个例子相反。在函数定义中时,**运算符会收集所有命名参数并创建一个字典。调用函数时,它需要一个字典并将其分解为命名参数
所以,如果你有
values = {'x': 1, 'y': 2}
f(**values)
Run Code Online (Sandbox Code Playgroud)
它相当于
f(x=1, y=2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2034 次 |
| 最近记录: |