Python 클래스와 __init__

코딩Python
읽는데 4분 소요
처음 쓰여진 날: 2026-02-18
마지막 수정일: 2026-02-18
조회수: 0

요약

Python 클래스의 기본 구조, __init__ 생성자, 클래스 속성과 인스턴스 속성의 차이를 알아봅니다. 정보처리기사 실기에 출제되는 클래스 관련 핵심 개념을 정리합니다.

클래스 핵심 정리

개념설명예시
class클래스 정의 키워드class Gamja:
init객체 생성 시 자동 호출되는 생성자def __init__(self, v):
self현재 인스턴스(객체)를 가리키는 매개변수self.v = v
클래스 속성클래스 자체에 속하는 속성, 모든 인스턴스가 공유class A: li = [1, 2, 3]
인스턴스 속성__init__ 안에서 self로 정의하는 속성self.name = name

클래스란?

클래스(Class) 는 객체를 만들기 위한 설계도입니다. class 키워드로 정의하며, 속성(데이터)과 메서드(동작)를 하나로 묶습니다.

python
코드 하이라이팅 중...

클래스 이름은 대문자로 시작하는 것이 관례입니다. Gamja() 처럼 클래스 이름 뒤에 괄호를 붙여 인스턴스를 생성합니다.

init 생성자

__init__ 은 인스턴스를 생성할 때 자동으로 호출되는 특별한 메서드입니다. 양쪽에 언더스코어 두 개(__)가 있어 던더(dunder) 메서드 라고도 부릅니다.

python
코드 하이라이팅 중...

__init__의 첫 번째 매개변수는 반드시 self 입니다. self는 생성된 인스턴스 자신을 가리키며, Python이 자동으로 전달합니다. Node(10) 을 호출할 때 self에는 새로 만들어진 인스턴스가, v에는 10이 전달됩니다.

클래스 속성 vs 인스턴스 속성

클래스 속성과 인스턴스 속성은 정의 위치가 다릅니다.

python
코드 하이라이팅 중...

클래스 속성은 모든 인스턴스가 공유합니다. 인스턴스를 통해서도, 클래스 이름을 통해서도 접근할 수 있습니다.

python
코드 하이라이팅 중...

인스턴스 속성은 각 인스턴스마다 별도로 존재합니다.

python
코드 하이라이팅 중...
구분정의 위치공유 여부접근 방법
클래스 속성클래스 블록 (메서드 밖)모든 인스턴스가 공유클래스명.속성 또는 인스턴스.속성
인스턴스 속성__init__ 안 (self.속성)인스턴스마다 독립인스턴스.속성

클래스 활용 예제

아래는 정보처리기사 실기에 출제된 것과 유사한 Node 클래스 활용 예제입니다.

python
코드 하이라이팅 중...

Node 인스턴스는 v(값)와 c(자식 목록)를 독립적으로 가집니다. root.c에 자식 노드를 추가하면 트리 구조를 만들 수 있습니다.


정보처리기사 실기 기출 문제