프로그래밍 패러다임 중 하나인 객체 지향 프로그래밍(OOP)은 프로그램을 객체들의 모임으로 보고, 이러한 객체들 간의 상호작용으로 프로그램을 표현하는 방식이다. 파이썬은 이러한 객체 지향 프로그래밍을 완벽하게 지원하며, 이는 클래스라는 기능을 통해 구현된다.
✅ 클래스와 객체
클래스는 객체를 생성하기 위한 템플릿으로, 객체의 상태를 나타내는 속성(attribute)과 행동을 나타내는 메서드(method)를 정의한다. 객체는 클래스에 정의된 대로 생성되며, 각 객체는 독립적인 상태를 가진다.
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"Woof, woof! My name is {self.name}.")
dog1 = Dog("Buddy")
dog2 = Dog("Rex")
dog1.bark() # Woof, woof! My name is Buddy.
dog2.bark() # Woof, woof! My name is Rex.
위 코드에서 Dog는 클래스이고, dog1과 dog2는 Dog 클래스의 객체이다. Dog 클래스는 name이라는 속성과 bark라는 메서드를 가지며, 각 Dog 객체는 자신만의 name을 가진다.
✅ 생성자 메서드
위 코드에서 __init__ 메서드는 생성자 메서드라고 부르며, 객체가 생성될 때 자동으로 호출된다. 생성자는 객체의 초기 상태를 설정하는 데 사용된다.
✅ 인스턴스 메서드
클래스에 정의된 메서드는 해당 클래스의 객체(인스턴스)가 사용할 수 있다. 이러한 메서드를 인스턴스 메서드라고 부른다. 인스턴스 메서드는 첫 번째 매개변수로 self를 받는데, self는 메서드가 호출되는 객체 자신을 참조한다.
이처럼 파이썬의 클래스와 객체 지향 프로그래밍은 코드를 구조화하고, 재사용성을 높이며, 복잡성을 관리하는 데 매우 유용하다.