Python의 정적 클래스 변수
Python의 정적 변수는 메서드가 아닌 정의 된 클래스 내부에서 선언 된 변수입니다. 이 변수는 정의 된 클래스를 통해 호출 할 수 있지만 직접 호출 할 수는 없습니다. 정적 변수는 클래스 변수라고도합니다. 이러한 변수는 클래스에 한정되어 있으므로 개체의 상태를 변경할 수 없습니다.
이 튜토리얼은 파이썬에서 정적 변수를 정의하는 다양한 방법을 보여줍니다.
staticmethod()
를 사용하여 Python에서 정적 변수 정의
Python의staticmethod()
는 주어진 함수에 대한 정적 변수를 반환하는 데 사용되는 내장 함수입니다.
이 방법은 이제 파이썬에서 정적 변수를 정의하는 오래된 방법으로 간주됩니다.
예:
class StaticVar:
def random(text):
print(text)
print("This class will print random text.")
StaticVar.random = staticmethod(StaticVar.random)
StaticVar.random("This is a random class.")
출력:
This is a random class.
This class will print random text.
여기에서 먼저StaticVar
라는 클래스를 만듭니다. 프로그램에서staticmethod()
함수를 사용하여random
이라는 변수를 클래스 외부의 정적 변수로 선언합니다. 이에 따라StaticVar
클래스를 사용하여random()
을 직접 호출 할 수 있습니다.
@staticmethod
를 사용하여 Python에서 정적 변수 정의
@staticmethod
는 정적 변수를 정의하는 현대적이고 가장 많이 사용되는 방법입니다. @staticmethod
는 Python에 내장 된 데코레이터입니다. 데코레이터는 초기 구조를 변경하지 않고 이미 존재하는 객체에 새로운 기능을 만드는 데 사용되는 Python에서 설계된 패턴입니다. 따라서@staticmethod
데코레이터는 파이썬에서 클래스 내부에 정적 변수를 정의하는 데 사용됩니다.
예:
class StaticVar:
@staticmethod
def random(text):
# show custom message
print(text)
print("This class will print random text.")
StaticVar.random("This is a random class.")
출력:
This is a random class.
This class will print random text.
@staticmethod
데코레이터는 정적 변수random
을 정의하기 전에 정의됩니다. 이로 인해StaticVar
클래스를 통해 끝에random
변수를 쉽게 호출 할 수 있습니다.
또한 두 메서드 모두에서random
변수를 정의하는 동안 함수 속성 및 메서드에 액세스하는 데 사용되는self
인수를 사용하지 않습니다. 정적 변수는 객체를 통해 작동하지 않기 때문입니다.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn