Python에서 정적 변수 및 메서드 만들기
Python에서는 정적 변수와 메서드를 각각 클래스 변수와 클래스 메서드라고 합니다. 이러한 엔터티는 클래스 수준에서 정의되며 객체를 인스턴스화하지 않고도 액세스하고 조작할 수 있습니다.
클래스 변수
클래스 변수는 클래스 정의 내, 메서드 외부에서 선언됩니다. . 클래스의 모든 인스턴스에서 공유되며 클래스 이름 뒤에 점이 표시되어 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
class MyClass: i = 3 print(MyClass.i) # Outputs 3
클래스 메서드
클래스 메서드는 클래스 내에 정의된 함수이지만 인스턴스 메서드와는 달리 클래스 자체에서 작동합니다. 인스턴스에. @staticmethod 데코레이터를 사용하여 선언됩니다.
class MyClass: @staticmethod def f(arg1, arg2, ...): ...
클래스 메서드는 객체 없이 클래스 이름을 사용하여 직접 호출할 수 있습니다. 일반적으로 유틸리티 함수나 유형 검사와 같은 개별 인스턴스와 독립적인 작업을 수행하는 데 사용됩니다.
정적 메서드보다 클래스 메서드
일부 프로그래머는 정적 메서드보다 클래스 메서드를 선호합니다. 클래스 유형을 첫 번째 인수로 받을 수 있기 때문입니다. 이를 통해 메소드는 클래스별 정보에 액세스하고 더 복잡한 작업을 수행할 수 있습니다.
class MyClass: @classmethod def g(cls, arg1, arg2, ...): ...
예
클래스 변수와 클래스 메소드:
class MyClass: count = 0 @classmethod def get_count(cls): return cls.count
이 클래스에는 생성된 객체 수를 추적하는 클래스 변수 개수와 클래스 메소드가 포함되어 있습니다. count의 현재 값을 검색하는 get_count입니다. 이를 사용하려면 다음과 같이 작성할 수 있습니다.
MyClass.count += 1 # Increment the class variable print(MyClass.get_count()) # Call the class method to get the count
클래스 변수와 메소드는 클래스의 여러 인스턴스 간에 공유 데이터와 기능을 정의하고 사용하는 편리한 방법을 제공하여 코드 구성을 단순화하고 코드 재사용성을 향상시킵니다.
위 내용은 Python에서 정적 변수와 메서드는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!