인스턴스 속성을 참조 할 때 파이썬이 명시적인 self
한정자를 필요로하는 이유를 알고 있습니다.자기 한정어를 잊어 버림 :이 실수를 어떻게 잡지 는가?
그러나 저는 C++에서 필요하지 않았기 때문에 종종 잊어 버렸습니다.
이 방법으로 소개하는 버그는 때로는 잡기가 매우 어렵습니다. 예를 들어, 내가
if x is not None:
f()
대신
if self.x is not None:
f()
한다고 가정 속성 x
의 너무 f()
이 거의라고하지, 보통 None
입니다 쓰기 가정합니다. 그리고 f()
이 미묘한 부작용 (예 : 숫자 값 변경 또는 캐시 지우기 등) 만 발생한다고 가정합니다. 미친 양의 단위 테스트가 없으면이 실수는 오랫동안 눈에 띄지 않을 것입니다.
누구든지이 유형의 버그를 잡거나 피할 수있는 코딩 기술이나 IDE 기능을 알고 있는지 궁금합니다.
변수 이름을'x'로 지정하지 마십시오. –
@Hamish, 휴식을주십시오, 그냥 샘플 코드입니다. –