Python/Python 이론

파이썬 : 클래스와 객체

P_eli 2024. 1. 21. 22:01
728x90
반응형

파이썬의 강력한 특징 중 하나인 객체지향 프로그래밍에 대해 이야기해보려고 합니다. 파이썬에서는 클래스와 객체를 통해 객체지향 프로그래밍을 지원하고 있어, 코드를 더 모듈화하고 재사용성을 높일 수 있습니다.

 

클래스란 무엇인가요?

클래스는 데이터와 기능을 함께 묶어놓은 것으로, 객체를 생성하는 템플릿입니다. 예를 들어, 자동차 클래스는 자동차 객체를 생성하기 위한 틀이 되며, 속성으로는 색상, 모델, 속도 등이 있을 수 있습니다. 또한, 메서드로는 주행, 정지, 경적 울리기 등의 동작을 정의할 수 있습니다.

 

class Car:
    def __init__(self, color, model):
        self.color = color
        self.model = model
        self.speed = 0

    def accelerate(self, amount):
        self.speed += amount
        print(f"The car is now moving at {self.speed} km/h.")

    def brake(self):
        self.speed = 0
        print("The car has come to a stop.")

# 클래스를 기반으로 객체 생성
my_car = Car(color="blue", model="sedan")

 

객체는 무엇인가요?

객체는 클래스의 인스턴스로, 클래스에서 정의한 속성과 메서드를 가지고 있습니다. 위의 예시에서 my_car는 Car 클래스의 인스턴스로서, 색상이나 모델과 같은 속성을 가지고 있습니다. 또한, accelerate나 brake와 같은 메서드를 호출할 수 있습니다.

 

# 객체의 속성에 접근
print(f"My car is a {my_car.color} {my_car.model}.")

# 객체의 메서드 호출
my_car.accelerate(50)
my_car.brake()

 

상속과 다형성

파이썬의 객체지향 프로그래밍에서는 상속과 다형성도 지원됩니다. 상속을 통해 기존 클래스의 속성과 메서드를 재사용하고, 다형성을 통해 여러 클래스를 하나의 인터페이스로 다룰 수 있습니다.

 

class ElectricCar(Car):
    def __init__(self, color, model, battery_capacity):
        super().__init__(color, model)
        self.battery_capacity = battery_capacity

    def charge(self):
        print("The electric car is charging.")

# ElectricCar 클래스는 Car 클래스를 상속받음
my_electric_car = ElectricCar(color="silver", model="SUV", battery_capacity=500)

# 기존의 메서드 사용 가능
my_electric_car.accelerate(60)

# 새로운 메서드 호출
my_electric_car.charge()

 

파이썬의 객체지향 프로그래밍을 통해 코드의 가독성을 높이고 유지보수를 쉽게 할 수 있습니다.

728x90
반응형