클래스의 __init__() 내부 및 외부 변수 정의의 영향
Python에서는 생성자 함수 __init__() 내에 선언된 클래스 변수가 표시됩니다. 외부에 정의된 것과는 구별되는 동작입니다. __init__() 내부에 선언된 변수는 인스턴스 속성이고, 외부에서 정의된 변수는 클래스 속성입니다.
인스턴스 속성('self'로 __init__() 내부에 정의됨)
변수 __init__() 내에서 self가 앞에 붙은 것은 특정 객체 인스턴스와 연관되어 있습니다. 각 인스턴스에는 이러한 변수의 자체 복사본이 있습니다. 따라서 한 인스턴스 내에서 이러한 변수를 변경해도 다른 인스턴스에는 영향이 없습니다.
예:
<code class="python">class WithClass: def __init__(self): self.value = "Bob" def my_func(self): print(self.value)</code>
여기서 value는 인스턴스 속성입니다. WithClass의 각 인스턴스는 고유한 값을 갖습니다.
클래스 속성(__init__ 외부에서 정의됨)
__init__() 외부에서 정의된 변수는 클래스 속성입니다. 이러한 변수는 클래스의 모든 인스턴스에서 공유됩니다. 한 인스턴스 내에서 변경된 내용은 다른 모든 인스턴스에 반영됩니다.
예:
<code class="python">class WithoutClass: value = "Bob" def my_func(self): print(self.value)</code>
이 경우 값은 클래스 속성입니다. WithoutClass의 모든 인스턴스는 동일한 값 변수를 참조합니다.
변수 정의의 결과
__init__() 내부 또는 외부에서 변수를 정의하는 선택은 원하는 기능에 따라 다릅니다. :
이러한 속성을 부적절하게 사용하면 예기치 않은 동작이나 오류가 발생할 수 있습니다. 예를 들어 클래스 속성이어야 하는 속성을 인스턴스 속성으로 정의하면 실수로 변수의 여러 복사본이 생성되어 성능 문제나 데이터 불일치가 발생할 수 있습니다.
위 내용은 차이점은 무엇입니까: Python의 인스턴스 속성과 클래스 속성?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!