클래스 자체 메서드 활용하기
클래스 메서드(Class Method)
는 클래스 자체를 첫 번째 인자로 받아서 실행하는 메서드입니다.
클래스 변수에 접근하거나 클래스 레벨에서 작업을 수행할 때 사용됩니다.
클래스 메서드는 @classmethod
데코레이터(다른 함수를 감싸는 함수로, 감싸진 함수의 기능 확장)로 정의합니다.
클래스 메서드 사용 예시
클래스 메서드는 인스턴스(self)
가 아닌 클래스 자체를 첫 번째 매개변수(cls)
로 받습니다.
클래스 메서드 사용 예시
class MyClass:
# 클래스 변수
class_variable = "공통 값"
# 클래스 메서드 정의
@classmethod
def class_method(cls):
return f"클래스 메서드 호출: {cls.class_variable}"
위 코드에서 class_method
는 클래스 메서드로, cls
매개변수를 통해 클래스 변수에 접근합니다.
클래스 메서드는 아래와 같이 클래스 이름 또는 인스턴스를 통해 호출할 수 있습니다.
클래스 메서드 호출
# 클래스 이름으로 호출
print(MyClass.class_method())
# 출력: 클래스 메서드 호출: 공통 값
# 인스턴스를 통해 호출
instance = MyClass()
print(instance.class_method())
# 출력: 클래스 메서드 호출: 공통 값
클래스 메서드는 주로 클래스 변수를 읽거나 수정하는 작업을 수행할 때 사용됩니다.
클래스 메서드를 통한 클래스 변수 수정
class Counter:
count = 0 # 클래스 변수
@classmethod
def increment(cls):
cls.count += 1
return cls.count
# 클래스 메서드 호출
print(Counter.increment())
# 출력: 1
print(Counter.increment())
# 출력: 2
클래스 메서드는 인스턴스의 상태(인스턴스 변수)를 변경할 수 없으며, 클래스 변수나 클래스 자체를 조작하는 데 사용 해야 합니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!