python classmethod란?

DEVHOB·2025년 6월 11일

FastAPI 학습 과정

목록 보기
6/6

✅ @classmethod란?

@classmethod는 클래스 메서드를 정의할 때 사용하는 데코레이터!
이 메서드는 클래스 자체(cls) 를 첫 번째 인자로 받아, 인스턴스가 아닌 클래스 수준에서 작동함.

🔁 일반 메서드 vs 클래스 메서드

종류첫 번째 인자호출 대상용도
일반 메서드self인스턴스인스턴스의 상태를 다룰 때
클래스 메서드cls클래스클래스 상태나 클래스 관련 로직 처리 시

✅ @field_validator와 함께 쓰는 이유

Pydantic v2에서 @field_validator는 클래스 메서드로 작성해야 하기 때문에 @classmethod가 필요함.
즉, 다음과 같이 두 데코레이터를 함께 써야 한다:

@field_validator('price')
@classmethod
def validate_price(cls, value):
    ...

cls: Item 클래스 자체를 의미

Pydantic이 내부적으로 클래스 컨텍스트에서 이 함수를 호출하므로, @classmethod가 반드시 필요

profile
배운 내용 복습 및 새로운 내용 학습

0개의 댓글