본문 바로가기
파이썬

파이썬 입문 - 8. 파이썬 객체지향 프로그래밍

by blacknabis 2024. 4. 21.
1. 객체지향 프로그래밍이란?

객체지향 프로그래밍은 데이터(속성)와 그 데이터를 처리하는 방법(메서드)을 하나로 묶는 프로그래밍 패러다임입니다. 이를 통해 프로그램을 더욱 모듈화하고, 코드 재사용을 증가시킬 수 있습니다.

2. 클래스와 객체
  • 클래스: 클래스는 객체를 생성하기 위한 템플릿 또는 설계도입니다. 데이터와 메서드를 하나의 구조로 캡슐화합니다.
  • 객체: 클래스를 기반으로 생성된 인스턴스입니다. 클래스에서 정의된 속성과 메서드를 실제 데이터와 함께 사용할 수 있습니다.
class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def display_info(self):
        print(f"{self.year} {self.make} {self.model}")

my_car = Car("Toyota", "Corolla", 2021)
my_car.display_info()
3. 상속

상속은 한 클래스(부모 클래스)의 속성과 메서드를 다른 클래스(자식 클래스)가 이어받아 사용할 수 있게 하는 기능입니다. 이를 통해 코드의 중복을 줄이고, 유지보수를 용이하게 합니다.

class ElectricCar(Car):  # Car 클래스를 상속받음
    def __init__(self, make, model, year, battery_size):
        super().__init__(make, model, year)
        self.battery_size = battery_size

    def display_battery(self):
        print(f"This car has a {self.battery_size}-kWh battery.")

my_tesla = ElectricCar("Tesla", "Model S", 2020, 85)
my_tesla.display_info()
my_tesla.display_battery()
4. 다형성

다형성은 같은 이름의 메서드가 다른 클래스에서 다른 작업을 수행할 수 있도록 합니다. 이는 메서드 오버라이딩을 통해 구현할 수 있습니다.

class Dog:
    def speak(self):
        print("Woof woof!")

class Cat:
    def speak(self):
        print("Meow meow!")

def pet_sound(pet):
    pet.speak()

my_dog = Dog()
my_cat = Cat()

pet_sound(my_dog)
pet_sound(my_cat)

마무리

이 포스트를 통해 파이썬에서 객체지향 프로그래밍의 기본적인 개념과 사용 방법을 배웠습니다. 클래스와 객체, 상속, 다형성을 활용하면 보다 구조화되고 유지보수가 용이한 코드를 작성할 수 있습니다. 객체지향 프로그래밍은 프로그램의 설계 단계에서부터 효과적인 관리와 확장을 가능하게 합니다. 이

러한 개념들은 복잡한 시스템을 개발할 때 특히 중요하며, 다음 포스트에서는 더욱 심화된 주제들을 다루어 보겠습니다.