Python 정적 메서드

TJ Lerias 2023년10월10일
  1. Python 정적 메서드
  2. Python 정적 메서드 생성 및 사용
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클래스의 인스턴스 인coffeeis_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()함수를 사용하여 정적 메서드를 만들 수 있습니다. 정적 메서드를 호출하기 위해 클래스의 인스턴스가 필요하지 않습니다. 간단히 직접 호출 할 수 있습니다.

관련 문장 - Python Class