파이썬에서 클래스, 인스턴스에 이어 정적 메소드에 대해 알아보겠습니다.
정적 메소드
목차
1. 정적 메소드란?
일반적으로 클래스의 메소드를 사용하기 위해서는 인스턴스를 통해 호출해야한다. 하지만 인스턴스를 통하지 않고 클래스의 메소드를 바로 사용할 수 있는 방법이 있다. 바로 정적 메소드를 활용하는 것이다.
정적 메소드는 다른 메소드(클래스 메소드, 인스턴스 메소드)와 달리 첫번째 매개변수로 self를 사용하지 않는다. 그렇기 때문에 정적 메소드 안에서 인스턴스나 클래스의 속성(self.OOO)에 접근하거나 인스턴스/클래스 메소드를 호출하는 것이 불가능하다.
정적 메소드는 인스턴스의 상태를 변화시키지 않는 메소드를 만들 때 사용된다.
2. 정적 메소드 호출 방법
정적 메소드는 메소드 위에 @staticmethod를 적어주면 된다. 그리고 매개변수에 self를 지정하지 않는다.
class 클래스이름:
@staticmethod
def 메서드(매개변수1, 매개변수2): # self를 사용하지 않는다.
코드
정적 메소드를 사용한 예시로 사칙연산을 하는 계산기 클래스를 만들었다.
class Calc:
@staticmethod
def plus(a, b):
print(a + b)
@staticmethod
def minus(a, b):
print(a - b)
@staticmethod
def div(a, b):
print(a / b)
@staticmethod
def mul(a, b):
print(a * b)
Calc.plus(200,10) # 클래스에서 메소드를 바로 호출(클래스 메소드)
Calc.minus(200,10)
Calc.div(200,10)
Calc.mul(200,10)
# Calc class 적용 결과
210
190
20
2000
위 예시처럼 정적메소드를 사용하면 인스턴스를 통해 메소드를 사용하는 것이 아니라 클래스에서 바로 메소드를 호출할 수 있다. 그렇기 때문에 정적메소드는 인스턴스를 쓸 일이 없을 때 사용하기 적합하다.
참고
[파이썬] 정적(static) 메서드와 클래스(class) 메서드 | Engineering Blog by Dale Seo
[파이썬] 정적(static) 메서드와 클래스(class) 메서드
Engineering Blog by Dale Seo
www.daleseo.com
파이썬 코딩 도장: 35.2 정적 메서드 사용하기 (dojang.io)
파이썬 코딩 도장: 35.2 정적 메서드 사용하기
지금까지 클래스의 메서드를 사용할 때 인스턴스를 통해서 호출했습니다. 이번에는 인스턴스를 통하지 않고 클래스에서 바로 호출할 수 있는 정적 메서드와 클래스 메서드에 대해 알아보겠습
dojang.io
클래스와 인스턴스
객체 지향 프로그래밍(Object-Oriented Programming, OOP)에서 사용되는 클래스와 인스턴스에 대해 알아보겠습니다. 클래스와 인스턴스 목차 1. 객체 지향 프로그래밍 2. 클래스 1) 클래스란? 2) 어떻게 사
johawk.tistory.com
'코드잇 스프린트 > 파이썬' 카테고리의 다른 글
시간 관련 모듈(datetime, time) (0) | 2024.07.30 |
---|---|
클래스 변수와 클래스 메소드 (0) | 2024.07.30 |
클래스와 인스턴스 (0) | 2024.07.25 |
pass, continue, 그리고 break (0) | 2024.07.19 |
예외처리: try, except, 그리고 raise Exception (0) | 2024.07.19 |