什么是'self`意味着在create(self,validated_data)方法中?

时间:2017-11-22 03:27:48

标签: python django django-rest-framework

创建(self,validated_data)方法中的self是什么意思?

我有一个名为CloudServerPayOrderSerializer的序列化程序,我想覆盖create()方法。

class CloudServerPayOrderSerializer(ModelSerializer):

    class Meta:
        model = TradeRecord
        exclude = (
            'id',
            'name',
            'traderecord_num', 
            'money',
            'balance',
            'desc', 
        )
    def create(self, validated_data):
        user = getUserFormSerializer(self)
        ...

你知道,我覆盖了create方法,我想让用户通过self。所以有一个util方法getUserFormSerializer

但我不知道self在这里代表什么,是否代表CloudServerPayOrderSerializer,如果不是,我不能将util方法命名为getUserFormSerializer

1 个答案:

答案 0 :(得分:0)

它代表您在此类上调用此方法的具体对象。它可以有任何名称(将其命名为thisobject或您喜欢的任何名称)但它始终是非静态方法的第一个参数,是的,当您在实际上调用该方法时对象,后者位于点之前,而不是括号中。

因此,在这种情况下,它用作:

cspos = CloudServerPayOrderSerializer()
cspos.create(42)   # self is bound to cspos and validated_data to 42