Python 클래스의 변수 범위 이해
Python 클래스에서 변수를 선언하는 것은 처음에는 혼란스러울 수 있습니다. 이 문서의 목적은 클래스 컨텍스트의 변수 선언과 관련된 다양한 범위와 미묘한 차이를 명확히 하는 것입니다.
일반 범위 규칙:
인스턴스 변수 대 전역 변수:
인스턴스 변수(self.(변수 이름)를 사용하여 선언됨)는 전역 변수(함수 또는 클래스 외부에서 선언됨)와 다르게 동작합니다. 클래스 내에서 선언된 모든 것은 기술적으로 공개되지만 인스턴스 변수는 개별 개체 인스턴스에 바인딩됩니다.
예:
class Test: a = None # Class variable b = None # Class variable def __init__(self, a): self.a = a # Instance variable
이 예에서 클래스 변수는 a와 b는 모든 클래스 함수에 액세스할 수 있습니다. 그러나 인스턴스 변수 self.a는 각 객체 인스턴스에 따라 다릅니다. __init__에서 self.a를 설정해도 클래스 변수 a에 영향을 미치지 않습니다.
보호된 변수:
Python은 개인 변수 또는 보호 변수를 명시적으로 정의하지 않지만 접두사가 붙은 변수 밑줄(_)은 보호된 것으로 간주됩니다. 기술적으로는 클래스 외부에서도 액세스할 수 있지만 이름을 변경하면 액세스가 방해됩니다.
개인 변수:
앞에 이중 밑줄(__)이 붙은 변수는 비공개로 간주됩니다. 클래스 외부에서 직접 접근하기 어렵도록 이름이 엉망입니다.
추가 뉘앙스:
위 내용은 변수 범위는 Python 클래스에서 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!