본문 바로가기
파이썬

[Python] 클래스(class)와 객체(object) 기본 개념 설명하기

by JJONY 2025. 4. 4.
반응형

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어를 구성하는 방식 중 하나로, Python에서도 핵심 개념입니다. 클래스(class)와 객체(object)는 OOP의 중심이며, 초보자들이 꼭 이해해야 할 주제입니다. 이 글에서는 Python에서 클래스를 정의하고 객체를 생성하는 방법, 그리고 클래스와 객체의 차이점과 활용 방법을 실제 예제를 통해 자세히 설명하겠습니다.

클래스(class)와 객체(object) 기본 개념 설명하기


1. 클래스(class)란 무엇인가?

1. 클래스의 개념

  • 클래스는 객체를 만들기 위한 틀 또는 설계도입니다.
  • 클래스에는 속성(변수)과 메서드(함수)를 정의할 수 있습니다.

2. 클래스 정의 문법

class 클래스이름:
    def __init__(self):
        # 초기화 메서드
        pass

3. 예제

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"안녕하세요, 저는 {self.name}이고 {self.age}살입니다.")

 


2. 객체(object)란 무엇인가?

1. 객체의 개념

  • 객체는 클래스를 기반으로 만들어진 실체입니다.
  • 클래스는 틀이고, 객체는 그 틀을 바탕으로 만들어진 실제 데이터입니다.

2. 객체 생성 문법

p1 = Person("Alice", 30)

3. 객체 사용 예제

p1.greet()  # 출력: 안녕하세요, 저는 Alice이고 30살입니다.

4. 속성 접근

print(p1.name)  # 출력: Alice
p1.age = 31
print(p1.age)   # 출력: 31

 


3. 클래스와 객체의 관계 및 용어 정리

1. 클래스 vs 객체 비교

항목 클래스(class) 객체(object)
정의 설계도 설계도로 만든 실체
생성 class 키워드 클래스() 형태로 생성
역할 속성과 기능 정의 실제 데이터 저장 및 메서드 실행

2. self 키워드

  • self는 해당 객체 자신을 가리키는 예약어입니다.
  • 메서드 정의 시 첫 번째 인자로 항상 포함되어야 합니다.

3. 생성자 함수 __init__()

  • 객체 생성 시 자동 호출되는 함수로, 초기 속성을 설정합니다.

4. 실전 예제: 자동차 클래스 만들기

class Car:
    def __init__(self, brand, speed):
        self.brand = brand
        self.speed = speed

    def drive(self):
        print(f"{self.brand} 자동차가 {self.speed}km/h로 달립니다.")

# 객체 생성
my_car = Car("Hyundai", 120)

# 메서드 호출
my_car.drive()

실행 결과 (터미널)

Hyundai 자동차가 120km/h로 달립니다.

속성 변경

my_car.speed = 150
my_car.drive()

결과

Hyundai 자동차가 150km/h로 달립니다.

 


5. 추가 팁 및 참고 사항

  • 클래스 이름은 대문자로 시작하는 파스칼 표기법(PascalCase)을 따릅니다.
  • 객체는 클래스의 인스턴스이며, 여러 개 생성 가능
  • 객체별로 고유한 속성과 상태를 가질 수 있습니다.
  • __str__() 메서드를 오버라이드하면 객체 출력 시 더 보기 좋은 문자열을 반환할 수 있습니다.

6. 요약 및 마무리

이번 포스팅에서는 Python에서 클래스와 객체의 기본 개념과 문법을 살펴보았습니다. 클래스는 설계도이고, 객체는 그 설계도로 만든 실체입니다. 클래스를 통해 속성과 기능을 정의하고, 객체를 생성하여 다양한 동작을 수행할 수 있습니다. OOP 개념을 이해하고 나면 더 큰 규모의 프로그램이나 유지보수에 강한 코드를 작성하는 데 큰 도움이 됩니다. 실제 예제를 통해 연습해보며 익히는 것이 가장 좋습니다.


7. 관련 글 링크 및 태그

  • 관련 글: Python에서 함수 정의와 사용법 - 초보자용 상세 가이드
반응형

댓글