Python

파이썬 클래스와 객체란?

헬로제이콥 2025. 5. 12. 17:37

 

파이썬 클래스와 객체란?

**클래스(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 입니다.
  • __init__이 생성자로, 객체 생성 시 name과 age를 초기화
  • greet는 인사하는 메서드
  • person1, person2는 각각 독립적인 객체356

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

파이썬 클래스와 객체를 이해하면 현실 세계의 사물을 코드로 표현하고, 재사용성과 유지보수성이 좋은 프로그램을 만들 수 있습니다