본문 바로가기
Python/구조 공부하기

[Python] 3. 정적 메소드

by 그갸거겨 2021. 10. 13.
728x90
반응형
정적 메소드(= static method)
- 클래스에서 직접 호출할 수 있는 메소드
- 즉, 인스턴스(객체)를 생성하지 않고 클래스 이름을 이용하여 호출할 수 있는 메소드
- 메소드를 정의할 때 인스턴스 객체를 참조하는 self라는 인자를 선언하지 않음

 

아래 코드와 설명을 보며, 좀 더 확실하게 이해해 보자!!

class MyOperatorStatic():
	
    @staticmethod
    def my_addStatic(x, y):
        return x+y

class MyOperator():
    def my_add(self, x, y):
        return x + y

if __name__ == '__main__':
    print(MyOperatorStatic.my_addStatic(1,6))

    myOperator = MyOperator()
    print(myOperator.my_add(1, 6))
- 기본적인 클래스와 정적 메소드를 가지고 있는 클래스가 있다.
- 3번 째 줄의 @staticmethod : 정적 메소드로 만들고 싶은 메소드의 바로 윗 라인에 적는 코드로 '데코레이터'라 지칭
- my_addStatic 함수는 정적 메소드, my_add 함수는 일반적인 멤버 함수(=메소드)
- 정적 메소드는 아래에서 4번 째 줄처럼 사용한다.
- 즉, 인스턴스(=객체)를 만들지 않고 사용하는 메소드 = 클래스 이름으로 접근하는 메소드
- 정적 메소드가 아닌 일반적인 멤버 함수라면,
- 아래에서 1~2번 째 줄처럼, 객체를 생성한 후 생성된 객체를 이용하여 메소드에 접근

 

728x90