types.MethodType
の引数は何ですか?何が返されますか? https://docs.python.org/3.6/library/types.htmlはそれについての詳細を言うことはありません:types.MethodTypeはどのように使用されますか?
types.MethodType
ユーザー定義クラスのインスタンスのメソッドのタイプ。例えば
、https://docs.python.org/3.6/howto/descriptor.html
からメソッド呼び出しをサポートするために、関数、属性アクセス時 結合法のため
__get__()
方法が挙げられます。つまり、すべての関数 は、オブジェクトまたはクラスから呼び出されたかどうかによって、バインドされたメソッドまたはバインドされていないメソッドを返す非データ記述子です。純粋 Pythonでは、それは次のように動作します。class Function(object): . . . def __get__(self, obj, objtype=None): "Simulate func_descr_get() in Objects/funcobject.c" if obj is None: return self return types.MethodType(self, obj)
types.MethodType
の最初の引数self
は呼び出し可能オブジェクトでなければなりませんか?つまり、クラスFunction
は呼び出し可能な型である必要があります。つまり、Function
にはメソッド__call__
が必要ですか?self
が呼び出し可能なオブジェクトの場合、少なくとも1つの引数をとりますか?types.MethodType(self, obj)
はすなわちobj
でself
をカリー化、呼び出し可能オブジェクトself
への最初の引数としてobj
を与えることを意味していますか?types.MethodType(self, obj)
は、types.MethodType
のインスタンスを作成して返しますか?
ありがとう。
ありがとうございました。 'types.MethodType(self、obj)'の引数をどのように理解していますか? – Ben
私はあなたの質問を理解していません。 MethodTypeはクラスです。そのコードは関数 '__get__'メソッドから' self'と 'obj'を渡しています。しかし、これも実際のコードではないことに注意してください。コメントによれば、基本的なC実装がメソッドを作成するために何をシミュレートしているかだけです。 –
私は質問をより明確にするために編集しようとしました。 – Ben