「self」の説明に関するSOの投稿を読み、クラスに関するPythonのドキュメントを読みました。self
Pythonクラスでの使用とその規則を理解していると思います。
self
ただし、Pythonとそのイディオムは比較的新しいため、手続き型関数定義で使用される理由がわかりません。たとえば、整数型に関するPythonのドキュメントでは、関数の例は次のとおりです。
def bit_length(self):
s = bin(self) # binary representation: bin(-37) --> '-0b100101'
s = s.lstrip('-0b') # remove leading zeros and minus sign
return len(s) # len('100101') --> 6
で置き換えるself
ことnum
は、同じ機能結果です。すなわち:
def bit_length(num):
s = bin(num) # binary representation: bin(-37) --> '-0b100101'
s = s.lstrip('-0b') # remove leading zeros and minus sign
return len(s) # len('100101') --> 6
最初のケースで__init__
なぜ使用されているのかをここで確認できるようなイディオムはありません。私は、手続き型関数の他self
の場所でもこの使用法を見てきましたが、混乱を招きます。self
だから私の質問:クラスやメソッドがない場合、なぜself
説明的なパラメータ名ではなく関数定義で使用するのですか?