<Python> 클래스와 객체 지향 프로그래밍

반응형

객체 지향 프로그래밍 소개

객체 지향 프로그래밍(Object Oriented Programming, OOP)은 프로그래밍 패러다임 중 하나로, 객체와 클래스의 개념을 사용하여 코드를 작성합니다. 객체 지향 프로그래밍을 사용하면 코드를 논리적인 구조로 나누고, 재사용성을 높이며, 유지 관리도 용이해집니다.

파이썬 클래스

파이썬에서 클래스(class)는 객체의 설계도를 정의하는 기능입니다. 클래스를 사용하면 객체를 생성하고, 비슷한 속성 및 메소드를 공유하는 객체들을 정의할 수 있습니다.

클래스 정의하기

파이썬에서 클래스를 정의하려면 class 키워드를 사용합니다:

class MyClass:
    # 클래스 속성 및 메소드 정의

클래스의 속성과 메소드

클래스에서 변수를 정의하면 속성(attribute)이 됩니다. 클래스 내에서 함수를 정의하면 메소드(method)가 됩니다.

class Person:
    species = "Homo sapiens"  # 클래스 속성

    def __init__(self, name):
        self.name = name  # 인스턴스 속성

    def greet(self):  # 메소드
        print(f"Hello, my name is {self.name}.")

파이썬 객체(인스턴스)

파이썬의 객체(instance)는 클래스의 실체로, 클래스를 사용하여 생성됩니다. 객체는 클래스의 속성과 메소드를 가져옵니다.

객체 생성하기

클래스를 사용하여 객체를 생성하려면 아래와 같은 구문을 사용합니다:

my_object = MyClass()

인스턴스와 클래스 속성

클래스 속성은 모든 인스턴스가 공유하는 변수이며, 인스턴스 속성은 개별 객체에서 사용하는 변수입니다.

인스턴스 속성은 보통 __init__ 메소드에서 정의합니다:

class Person:
    species = "Homo sapiens"

    def __init__(self, name):
        self.name = name

클래스 상속

파이썬에서 클래스 상속은 한 클래스가 다른 클래스의 속성 및 메소드를 상속받을 때 사용하는 개념입니다. 이를 통해 상위 클래스(superclass)의 코드를 재사용하고, 하위 클래스(subclass)에서 추가 및 수정을 수행할 수 있습니다.

여기서, 기존의 Person 클래스를 상속받아 Student 클래스를 생성합니다:

class Student(Person):
    def study(self):
        print(f"{self.name} is studying.")

이제, Student 클래스는 Person 클래스의 속성과 메소드를 상속받습니다. 또한 새로운 메소드 study를 추가하여 객체의 기능을 확장할 수 있습니다.

객체 지향 프로그래밍의 원칙

객체 지향 프로그래밍에서는 디자인 원칙을 따르며, 이를 통해 많은 장점이 있습니다:

  • 캡슐화 (Encapsulation): 클래스를 통해 데이터와 메소드를 하나의 캡슐로 묶습니다. 이를 통해 데이터의 수정을 제어하고, 메소드를 통해 데이터를 노출합니다.
  • 다형성 (Polymorphism): 여러 클래스에서 같은 메소드 이름을 사용하고 다른 로직을 가지게 하여 유연성을 높입니다.
  • 상속 (Inheritance): 기존 클래스의 기능을 상속받아 코드를 재사용하고, 필요한 기능을 덧붙여 확장할 수 있습니다.

이 글에서는 파이썬에서 클래스와 객체 지향 프로그래밍에 대해 알아보았습니다.

 

감사합니다.

Designed by JB FACTORY