
파이썬 클래스와 객체란?
**클래스(class)**는 객체(object)를 만들기 위한 설계도 또는 틀입니다. 클래스는 변수(속성)와 함수(메서드)를 묶어서 하나의 새로운 자료형으로 정의합니다. 이 클래스를 사용해서 실제로 만들어낸 실체가 **객체(object)**이고, 이 객체를 특정 클래스에서 만들어졌다고 강조할 때 **인스턴스(instance)**라고도 부릅니다135.
클래스와 객체의 관계 비유
- 클래스: 와플을 찍어내는 틀, TV의 설계도, 자동차의 설계도
- 객체: 실제로 만들어진 와플, 삼성 스마트TV, 실제 자동차
이렇게 클래스를 통해 여러 개의 객체를 독립적으로 만들 수 있습니다. 각 객체는 서로 영향을 주지 않습니다15.
파이썬 클래스 기본 구조
class 클래스이름:
# 클래스 변수
변수명 = 값
# 생성자 (객체가 생성될 때 자동 호출)
def __init__(self, 매개변수1, 매개변수2):
self.인스턴스변수1 = 매개변수1
self.인스턴스변수2 = 매개변수2
# 메서드 (클래스 내부 함수)
def 메서드이름(self, 추가매개변수):
# 동작 구현
pass
- 클래스 변수: 클래스 전체에서 공유
- 인스턴스 변수: 객체별로 독립적
- 생성자 __init__: 객체 생성 시 자동 호출되어 초기화
- 메서드: 객체의 동작을 정의, 첫 번째 인수는 항상 self (해당 객체 자신)234
이해하기 쉬운 예제
1. 자동차 클래스 예제
class Car:
def on(self):
print("차량의 시동을 켭니다.")
ray = Car()
ray.on() # 출력: 차량의 시동을 켭니다.
- Car는 클래스(설계도)
- ray는 Car 클래스에서 만든 객체(인스턴스)
class Car:
def __init__(self, brand):
self.brand = brand
def on(self):
print(f"{self.brand} 차량의 시동을 켭니다.")
# 자동차 객체 생성
benz = Car("벤츠")
hyundai = Car("현대")
toyota = Car("토요타")
# 사용 예시
benz.on() # 출력: 벤츠 차량의 시동을 켭니다.
hyundai.on() # 출력: 현대 차량의 시동을 켭니다.
toyota.on() # 출력: 토요타 차량의 시동을 켭니다.
2. 사람(Person) 클래스 예제
class Person:
def __init__(self, name, age):
self.name = name # 인스턴스 변수
self.age = age
def greet(self):
print("안녕하세요, 저는", self.name, "입니다.")
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
print(person1.name) # 출력: Alice
print(person1.age) # 출력: 25
person1.greet() # 출력: 안녕하세요, 저는 Alice 입니다.
3. TV 클래스 예제
class TV:
def __init__(self, brand, model, size):
self.brand = brand
self.model = model
self.size = size
self.power = False
def power_on(self):
self.power = True
print(f"{self.brand} {self.model} TV가 켜졌습니다.")
tv1 = TV("삼성", "스마트 TV", 55)
tv1.power_on() # 출력: 삼성 스마트 TV가 켜졌습니다.
- 현실 세계의 TV를 코드로 모델링
- 속성: 브랜드, 모델, 크기, 전원상태 등
- 동작: 전원 켜기 등5
정리
- 클래스: 객체를 만들기 위한 설계도(틀)
- 객체: 클래스로부터 만들어진 실제 데이터(실체)
- 인스턴스: 특정 클래스에서 만들어진 객체를 강조할 때 사용
- 생성자: __init__ 메서드, 객체 생성 시 자동 호출
- 메서드: 클래스 내부 함수, 첫 인수는 항상 self
파이썬 클래스와 객체를 이해하면 현실 세계의 사물을 코드로 표현하고, 재사용성과 유지보수성이 좋은 프로그램을 만들 수 있습니다
'Python' 카테고리의 다른 글
| 파이썬 상속 예제 (0) | 2025.05.14 |
|---|---|
| 함수 정의 및 호출 (0) | 2025.05.12 |
| 파이썬 딕셔너리를 사용해서 간단한 인공지능 대화 프로그램 (0) | 2025.05.09 |
| 파이썬 딕셔너리(Dictionary)와 집합(Set) 완벽 가이드 (0) | 2025.05.09 |
| 파이썬 딕셔너리(Dictionary)와 집합(Set) 완벽 가이드 (0) | 2025.05.09 |