밑줄 마스크 해제: Python에서 단일 및 이중 밑줄 이해
Python에서는 식별자 앞에 하나 또는 두 개의 밑줄이 있으면 클래스나 모듈 내에서 의미와 가시성을 변경합니다.
싱글 밑줄: 내부 사용 표시
앞에 밑줄이 있으면 속성이나 메서드가 현재 클래스 내에서 내부적으로 사용된다는 의미입니다. 그러나 이는 단지 관례일 뿐입니다. 개인 정보 보호는 시행되지 않습니다. 또한 모듈 함수의 단일 선행 밑줄은 외부 모듈에서 가져오면 안 된다는 것을 나타냅니다.
이중 밑줄: 이름 맹글링
앞의 두 밑줄은 이름 맹글링을 나타냅니다. 이러한 식별자는 ClassName이 앞에 추가되어 내부적으로 변환됩니다. 여기서 ClassName은 선행 밑줄이 제거된 현재 클래스 이름입니다. 이 메커니즘은 클래스 전용 인스턴스 및 클래스 변수의 정의를 허용하고 외부 액세스에 대한 일부 보호를 제공합니다. 그러나 결정된 개인은 여전히 개인 변수에 액세스할 수 있으므로 이름 맹글링이 절대적인 개인 정보 보호를 보장하지는 않는다는 점에 유의하는 것이 중요합니다.
예:
다음 클래스를 고려하세요.
class MyClass(): def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"
예제 출력에서 볼 수 있듯이 __superprivate에 직접 액세스하면 AttributeError가 발생하지만 _semiprivate는 액세스할 수 있습니다.
__dict__ 속성은 __superprivate 및 _semiprivate을 맹글링하여 이름 맹글링 메커니즘을 확인합니다.
위 내용은 단일 및 이중 밑줄은 Python에서 변수 및 메서드 가시성에 어떤 영향을 줍니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!