C02.파이썬 클래스와 인스턴스

학습 목표

이번 강의에서는 파이썬에서 클래스를 정의하고 그 클래스를 기반으로 인스턴스를 생성하여 객체를 다루는 방법을 배웁니다. 객체의 개념을 명확히 하고, 다양한 속성과 메서드를 통해 객체의 기능을 구현하는 방법을 익힐 것입니다.

개념 설명

클래스(Class)는 객체를 만들기 위한 설계도로, 객체의 속성(Attribute)과 메서드(Method)를 정의합니다. 인스턴스(Instance)는 클래스를 기반으로 생성된 실제 객체로, 각 인스턴스는 고유한 속성을 가질 수 있습니다. 클래스를 정의할 때는 class 키워드를 사용하며, 인스턴스는 해당 클래스의 이름을 호출하여 생성합니다.

예제 코드

# 클래스 정의
class Dog:
    def __init__(self, name, age):
        """초기화 메서드로 인스턴스의 속성을 정의합니다."""
        self.name = name  # 개의 이름
        self.age = age    # 개의 나이

    def bark(self):
        """개가 짖는 메서드"""
        return f"{self.name}가 짖습니다: 멍멍!"

    def get_info(self):
        """개의 정보를 출력하는 메서드"""
        return f"이름: {self.name}, 나이: {self.age}세"

# 인스턴스 생성
my_dog = Dog("Buddy", 3)

# 메서드 호출
print(my_dog.bark())  # "Buddy가 짖습니다: 멍멍!" 출력
print(my_dog.get_info())  # "이름: Buddy, 나이: 3세" 출력

코드 설명

위 코드는 Dog라는 클래스를 정의하고, 이 클래스를 기반으로 인스턴스를 생성하는 예시입니다.

  • __init__ 메서드는 인스턴스가 생성될 때 호출되어, 개의 이름과 나이를 속성으로 설정합니다.
  • bark 메서드는 개가 짖는 소리를 반환하고, get_info 메서드는 개의 정보를 출력합니다.
  • my_dogDog 클래스의 인스턴스이며, 이 인스턴스를 사용하여 메서드를 호출하고, 해당 속성에 접근합니다.

연습 문제

1. Car 클래스를 정의하여 자동차의 브랜드, 모델, 연식 속성을 추가하고, 자동차 정보를 출력하는 메서드를 작성해 보세요.

2. Person 클래스를 정의하여 이름, 나이 및 성별 속성을 추가하고, 인사하는 메서드를 포함하도록 프로그램을 작성해 보세요. 인스턴스를 생성한 후 인사 메서드를 호출해 보세요.

연습 문제 해답

# 1번 문제: Car 클래스 정의
class Car:
    def __init__(self, brand, model, year):
        self.brand = brand  # 브랜드
        self.model = model  # 모델
        self.year = year    # 연식

    def get_info(self):
        """자동차 정보를 출력하는 메서드"""
        return f"차종: {self.brand} {self.model}, 연식: {self.year}"

# 자동차 인스턴스 생성
my_car = Car("현대", "소나타", 2022)
print(my_car.get_info())  # "차종: 현대 소나타, 연식: 2022" 출력

# 2번 문제: Person 클래스 정의
class Person:
    def __init__(self, name, age, gender):
        self.name = name       # 이름
        self.age = age         # 나이
        self.gender = gender   # 성별

    def greet(self):
        """인사하는 메서드"""
        return f"안녕하세요, 제 이름은 {self.name}입니다."

# 사람 인스턴스 생성
person1 = Person("최지우", 28, "여성")
print(person1.greet())  # "안녕하세요, 제 이름은 최지우입니다." 출력
### 설명 - **클래스**와 **인스턴스**의 개념을 설명하고, 자동차 및 사람 클래스의 예제를 통해 어떻게 속성과 메서드를 정의하는지 보여줍니다. - **메서드 호출**을 통해 객체의 기능을 구현하는 방법도 동시에 전달합니다. - **연습 문제**를 통해 사용자가 직접 클래스를 정의하고 인스턴스를 생성하여 객체의 속성 및 메서드를 활용하는 데 도움을 줍니다.

댓글 쓰기

0 댓글