【发布时间】:2018-10-24 23:46:05
【问题描述】:
我正在阅读关于 Django serialization
class SnippetSerializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)
title = serializers.CharField(required=False, allow_blank=True, max_length=100)
code = serializers.CharField(style={'base_template': 'textarea.html'})
linenos = serializers.BooleanField(required=False)
language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python')
style = serializers.ChoiceField(choices=STYLE_CHOICES, default='friendly')
def create(self, validated_data):
"""
Create and return a new `Snippet` instance, given the validated data.
"""
return Snippet.objects.create(**validated_data)
为什么我们在 return 语句中需要 **?
【问题讨论】:
-
这与return无关,这是将validated_data dict作为关键字args传递给
create()方法。 -
不是在return语句中,而是在函数调用语句中。
-
你需要了解python中的*args和**kwargs(阅读:learnbatta.com/blog/how-to-use-args-and-kwargs-in-python-3)
标签: python django python-3.x python-2.7 keyword-argument