클래스(class)는 「데이터와 그 데이터를 다루는 함수를 한 묶음으로 정리하는」 객체지향 프로그래밍의 기본 단위입니다.
「class 이름:」으로 정의하고 「인스턴스 = 클래스이름()」으로 만들어 사용합니다.
기본 형식.
class Person: pass — 빈 클래스.
p = Person() — 인스턴스 생성.
클래스가 「설계도」라면 인스턴스는 「그 설계도로 만들어진 실제 물건」입니다.
한 클래스로 무한히 많은 인스턴스를 만들 수 있습니다.
__init__ 메서드는 「인스턴스가 만들어질 때 자동으로 호출되는 초기화 함수」입니다.
class Person: def __init__(self, name, age): self.name = name; self.age = age.
이렇게 하면 Person("홍길동", 30) 호출 시 name과 age가 자동 설정됩니다.
self는 「인스턴스 자신을 가리키는 첫 번째 매개변수」입니다.
self.name = name은 「내 인스턴스의 name 속성에 매개변수 name 값을 저장하라」는 뜻.
다른 언어가 「this」를 자동으로 쓰는 것과 달리 파이썬은 self를 명시적으로 적습니다.
비유하자면 클래스는 「붕어빵 틀」, 인스턴스는 「만들어진 붕어빵 하나하나」, __init__은 「붕어빵을 만들 때 처음에 들어가는 반죽과 팥」입니다.
같은 틀로 모양은 같지만 매번 다른 붕어빵(인스턴스)이 만들어집니다.
한 줄 요약
클래스는 데이터+함수를 묶는 설계도이고, 인스턴스는 그 설계도로 만든 실제 객체입니다.
__init__으로 초기화하고 self로 인스턴스 자신을 가리킵니다.
더 알아볼 것
- self를 안 쓰면 어떻게 되나
- __init__과 __new__의 차이
- dataclass — 더 짧은 클래스 정의