Logo
내 게시판 만들기
파이썬

클래스 메서드와 정적 메서드

곰돌이 | 2026.04.27 06:20:05
조회 11 | 추천 0

파이썬의 클래스에는 세 가지 종류의 메서드가 있습니다.

인스턴스 메서드(가장 흔한), 클래스 메서드, 정적 메서드.

각자 다른 역할과 사용 시점이 있습니다.



인스턴스 메서드.

첫 매개변수가 self.

인스턴스의 데이터에 접근.

d.bark() 같은 일반적 호출.

가장 자주 쓰이는 형태입니다.



클래스 메서드.

@classmethod 데코레이터로 표시.

첫 매개변수가 cls(클래스 자신).

인스턴스 없이 클래스에서 직접 호출 가능.

보통 「대안적 생성자(alternative constructor)」 역할을 합니다.

class Date: @classmethod; def from_string(cls, s): year, month = map(int, s.split('-')); return cls(year, month).

Date.from_string("2026-04")처럼 호출.



정적 메서드.

@staticmethod 데코레이터.

self·cls 모두 안 받음.

사실상 클래스 안에 들어 있는 일반 함수.

「이 함수는 이 클래스와 의미상 관련이 있지만 인스턴스나 클래스의 데이터를 안 쓴다」를 표현.

class Math: @staticmethod; def add(a, b): return a + b.

Math.add(3, 5).



비유로 정리.

인스턴스 메서드는 「내 강아지(인스턴스)에게 명령」, 클래스 메서드는 「강아지 종 자체에 대해 무언가」(예: 새 강아지 만들기), 정적 메서드는 「강아지 회사의 사무실에 같이 두는 일반 도구」(강아지 자체와는 직접 관련 없음).

각자 의도가 다르므로 적절히 골라 씁니다.




한 줄 요약


파이썬 메서드는 인스턴스 메서드(self), 클래스 메서드(@classmethod, cls — 대안 생성자), 정적 메서드(@staticmethod — 그냥 함수)의 셋으로 나뉩니다.




더 알아볼 것


- 클래스 메서드의 「from_X」 패턴

- 정적 메서드의 모듈 함수 대비 장점

- 왜 self는 자동이 아닌가

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
71 햇살이 26/04/27 10 0
70 곰돌이 26/04/27 12 0
69 구름이 26/04/27 13 0
68 부엉이 26/04/27 12 0
67 야옹이 26/04/27 11 0
66 야옹이 26/04/27 14 0
65 멍뭉이 26/04/27 30 0
64 멍뭉이 26/04/27 12 0
63 부엉이 26/04/27 15 0
62 구름이 26/04/27 11 0
61 멍뭉이 26/04/27 13 0
60 야옹이 26/04/27 13 0
59 토순이 26/04/27 14 0
58 다람쥐 26/04/27 14 0
57 햇살이 26/04/27 19 0
56 멍뭉이 26/04/27 9 0
55 구름이 26/04/27 9 0
54 다람쥐 26/04/27 12 0
53 곰돌이 26/04/27 11 0
52 햇살이 26/04/27 35 0
51 멍뭉이 26/04/27 10 0
50 곰돌이 26/04/27 37 0
49 다람쥐 26/04/27 12 0
48 너구리 26/04/27 12 0
47 구름이 26/04/27 15 0
46 야옹이 26/04/27 12 0
45 너구리 26/04/27 12 0
44 야옹이 26/04/27 12 0
43 곰돌이 26/04/27 13 0
42 구름이 26/04/27 10 0
신고하기

신고 사유를 선택해 주세요.