'self'에 대해 the SO post을 읽었으며 클래스에 Python documentation을 읽었습니다. 파이썬 수업과 그 안에있는 컨벤션에서 self
의 사용법을 이해한다고 생각합니다.Python 'self'for function
그러나 비교적 Python과 그 관용구에 익숙하지 않기 때문에 일부는 절차 유형 정의에서 self
을 사용하는 이유를 이해할 수 없습니다. 예를 들어, Python documentation on integer types에서 예시적인 함수는 다음과 num
self
이 동일한 기능적 결과 교체
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
가 첫 번째 경우에 사용되는 이유가 여기에 볼 수 있습니다 __init__
같은 더 관용구 등 없습니다
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
. 절차 적 함수의 다른 곳에서도이 사용을 보았고 혼란 스럽습니다.
내 질문 : 클래스 또는 메서드가없는 경우 설명적인 매개 변수 이름 대신 함수 정의에 self
을 사용해야하는 이유는 무엇입니까?
즉, 문서는 'int'메소드 중 하나를 구현하는 것과 동등하지만 비효율적 인 구현을 보여주기 때문에 'self'가 사용됩니다. –