Python 클래스의 변수 범위
범위 변형
Python 클래스에서는 변수 범위가 다양합니다. 선언된 위치에 따라:
-
클래스 수준 변수(외부 함수): 모든 클래스 함수(공용 변수)에 액세스 가능.
-
함수-지역 변수(클래스 함수 내부): 해당 특정 함수(해당 범위 내)로 제한됩니다.
자체 대 전역 변수
클래스 함수 내에서 self.(변수 이름)로 변수를 선언하면 모든 클래스 함수에 액세스할 수도 있습니다. 그러나 전역 변수와 달리 이러한 변수는 현재 인스턴스에만 적용되며 클래스 수준 변수를 재정의하지 않습니다.
추가 뉘앙스
-
Single vs. 이중 밑줄 접두사: 단일 밑줄로 시작하는 변수(예: _variable)는 보호된 것으로 간주되며 클래스 내에서만 액세스해야 합니다. 이중 밑줄로 시작하는 변수(예: __variable)는 맹글링되어 사실상 비공개입니다.
-
로컬 변수: 클래스 함수 내에서 선언된 변수는 해당 함수에 대해 로컬이며 클래스 범위에 영향을 주지 않습니다.
예
다음 클래스를 고려하세요.
class Test:
a = None
b = None
def __init__(self, a):
print(self.a)
self.a = a
self._x = 123
self.__y = 123
b = 'meow'
- a와 b는 모든 클래스에서 액세스할 수 있는 클래스 수준 변수입니다. instance.
- a는 __init__의 인스턴스별 self.a에 의해 재정의됩니다.
- _x는 보호되며 공개 API의 일부가 아닙니다.
- __y는 손상되고 비공개입니다.
- b는 __init__ 내에서만 액세스할 수 있는 지역 변수입니다.
위 내용은 Python 클래스 내에서 변수 범위는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!