
클래스(Class): 설계도, 틀
클래스는 설계도와 같다. 이 설계도 안에는 객체를 만들기 위한 변수 (속성) 와 함수 (메서드) 들이 정의되어 있다.
클래스는 단순히 객체를 찍어내기 위한 틀의 역할을 하며, 실제 데이터나 행위를 담고 있지는 않다.
비유: 신발 설계도, 붕어빵 틀
객체(Object): 속성값과 행동을 가진 실체
객체는 클래스라는 설계도를 바탕으로 실제로 만들어진 결과물.
각각의 객체는 클래스에서 정의된 속성에 구체적인 값을 가지고 있으며, 클래스에 정의된 메서드를 통해 특정한 행동을 수행할 수 있다.
비유: 신발 설계도로 만들어진 빨간색 260mm 운동화, 붕어빵 틀로 구워진 팥 붕어빵
객체 vs 인스턴스
객체는 클래스 타입으로 선언된 포괄적인 개념
인스턴스는 그 객체가 메모리에 할당되어 실제로 사용될 수 있는 구체적인 실체를 의미한다. 하지만 일반적으로는 객체와 인스턴스를 혼용해서 사용해도 큰 무리는 없다. "파이썬 객체", "클래스의 인스턴스" 모두 같은 것을 가리킬 수 있다.
클래스의 기본 구조
class 클래스이름:
# 속성 (데이터)
변수1 = 값1
변수2 = 값2
# 메서드 (기능)
def 메서드이름1(self, 매개변수1, ...):
# 메서드 내용
pass
def 메서드이름2(self, 매개변수2, ...):
# 메서드 내용
pass
클래스 이름은 관례적으로 대문자로 시작
여러 단어가 합쳐질 때는 CamelCase 방식을 사용한다.