2017-11-22 9 views
-1

selfとは、create(self、validated_data)メソッドの意味ですか?`self`とはcreate(self、validated_data)メソッドの意味ですか?

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があります。

ここには、CloudServerPayOrderSerializerのスタンドであるかどうかはわかりませんが、そうでない場合はutilメソッドの名前をgetUserFormSerializerとすることはできません。

+0

:として

ので、この場合には、それが使用されています。 Pythonクラスでのselfの使用を認識していない場合は、入門言語のチュートリアルを行う必要があります。 –

答えて

0

このメソッドを呼び出すこのクラスの具体的なオブジェクトを表します。任意の名前(名前はthisobjectなど)でも構いませんが、常に非静的メソッドの最初の引数です。実際のオブジェクトでメソッドを呼び出すと、後者はドットの前に立つ、カッコではない。これは、基本的なPythonの質問です

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

このシナリオでは何を表していますか? – fanhualuojin154873

+0

編集済みの記事を参照してください。 – bipll

+0

はい自己は他の名前でも構いませんが、他のPythonプログラマと無限の混乱を招く危険があるため、従来の「self」から名前を変更するように誘惑されません。 – barny

関連する問題