Python 정적 메서드
이 문서는 Python에서 정적 메서드를 만들고 사용하는 방법을 보여줍니다.
Python 정적 메서드
정적 메서드는 클래스에 속합니다. 그래도 해당 클래스의 객체에 묶여 있지 않습니다. 따라서 상주하는 클래스의 인스턴스를 만들지 않고도 호출 할 수 있습니다. 정적 메서드는 객체에 바인딩되지 않기 때문에 클래스의 속성에 대해 알지 못하므로 속성에 액세스하거나 수정할 수 없습니다. 클래스.
Python 정적 메서드 생성 및 사용
먼저 인스턴스 메서드를 만들어 정적 메서드와 구별 해 보겠습니다. 정수를 매개 변수로 받아들이는is_hot
이라는 메소드가있는Coffee
클래스가 있다고 가정 해 보겠습니다. 주어진 정수가 50보다 크면True
를, 50보다 작 으면False
를 반환합니다.
class Coffee:
def is_hot(self, temperature):
return temperature > 50
coffee = Coffee()
print(coffee.is_hot(100))
출력:
True
위의 예에서Coffee
클래스의 인스턴스 인coffee
는is_hot
메소드를 호출 할 수 있도록 인스턴스화되었습니다.
이제@staticmethod
데코레이터를 사용하여is_hot
을 정적 메소드로 만들어 보겠습니다. 메서드를 정적 메서드로 정의하는 데 사용되는 내장 데코레이터입니다.
class Coffee:
@staticmethod
def is_hot(temperature):
return temperature > 50
print(Coffee.is_hot(100))
출력:
True
이전 예제에서 만든 인스턴스 메서드와 달리 정적 메서드의 매개 변수로self
를 전달할 필요가 없으며 정적 메서드를 사용할 수 있도록 클래스의 인스턴스를 만들 필요가 없습니다. 프로세스를 직접 사용하기 만하면됩니다.
또는staticmethod()
함수를 사용하여 정적 메서드를 만들 수 있습니다. 이것은 함수을 매개 변수로 받아서 정적 메소드로 리턴하는 내장 함수입니다.
class Coffee:
def is_hot(temperature):
return temperature > 50
Coffee.is_hot = staticmethod(Coffee.is_hot)
print(Coffee.is_hot(100))
출력:
True
정적 메서드는 클래스 속성에 액세스하거나 수정할 필요가 없기 때문에 격리 된 작업을 수행하는 유틸리티 메서드를 만들 때 유용합니다. 인수로 전달 된 데이터에서만 작동합니다.
요약하면@staticmethod
데코레이터 또는staticmethod()
함수를 사용하여 정적 메서드를 만들 수 있습니다. 정적 메서드를 호출하기 위해 클래스의 인스턴스가 필요하지 않습니다. 간단히 직접 호출 할 수 있습니다.