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
'Python > 구조 공부하기' 카테고리의 다른 글
[Python] 6. 다중 상속 및 이름 충돌 (2) | 2021.10.26 |
---|---|
[Python] 5. 상속과 다형성 (0) | 2021.10.26 |
[Python] 4. private 멤버 (0) | 2021.10.26 |
[Python] 2. 생성자 메소드와 소멸자 메소드 (0) | 2021.10.06 |
[Python] 1. 클래스와 인스턴스 (0) | 2021.10.05 |