Akashic Records

5.1 클래스(Class)와 객체(Object) 본문

Python for Beginners

5.1 클래스(Class)와 객체(Object)

Andrew's Akashic Records 2023. 3. 20. 13:21
728x90

 

파이썬에서 클래스와 객체는 객체 지향 프로그래밍(OOP, Object-Oriented Programming)의 핵심 개념입니다. 객체 지향 프로그래밍은 프로그램을 개발할 때 데이터와 기능을 하나의 "객체"로 묶는 방식입니다. 객체는 데이터를 표현하는 속성(attributes)과 그 데이터를 조작할 수 있는 메서드(methods)를 포함합니다. OOP의 주요 목적은 코드의 재사용성, 확장성 및 관리 용이성을 증가시키는 데 있습니다.

 

파이썬에서의 클래스와 객체
파이썬은 객체지향 프로그래밍을 지원하는 언어로, 클래스를 사용해 객체의 구조를 정의할 수 있습니다. 클래스는 객체의 템플릿이며, 실제 객체는 클래스에 정의된 구조를 바탕으로 생성됩니다.

 

클래스 (Class) :

클래스는 객체를 생성하기 위한 틀 또는 설계도입니다. 클래스는 객체가 가져야 할 속성(attribute)과 메서드(method)를 정의합니다. 속성은 객체의 상태를 나타내는 변수이며, 메서드는 객체의 행동을 나타내는 함수입니다. 클래스를 정의할 때, 일반적으로 파스칼 케이스(PascalCase)를 사용하여 클래스 이름을 지정합니다.

클래스는 class 키워드로 정의하며, 클래스 내에서 메서드를 정의할 수 있습니다. 클래스의 모든 메서드는 첫 번째 매개변수로 self를 포함해야 합니다. self는 현재 객체의 인스턴스를 참조합니다.

 

예시 코드 - 클래스 정의:

class Dog:
    def __init__(self, name, age):
        """강아지 객체를 초기화하고 이름과 나이 속성을 설정합니다."""
        self.name = name
        self.age = age

    def sit(self):
        """강아지가 앉는 행동을 시뮬레이션합니다."""
        print(f"{self.name} is now sitting.")

    def roll_over(self):
        """강아지가 데굴데굴 구르는 행동을 시뮬레이션합니다."""
        print(f"{self.name} rolled over!")

위 예제에서 Dog 클래스는 name과 age라는 두 개의 속성과 speak라는 메서드를 가집니다. __init__ 메서드는 생성자로서 객체가 생성될 때 호출됩니다.

 

객체 (Object) :

객체는 클래스의 인스턴스입니다. 객체는 클래스의 정의를 사용하여 생성되며, 클래스에 정의된 속성과 메서드를 가지게 됩니다. 객체는 실제 프로그램에서 사용되는 데이터와 기능을 포함하고 있으며, 각 객체는 독립적인 상태와 행동을 가질 수 있습니다.

 

예시 코드 - 객체 생성 및 사용:

# Dog 클래스의 인스턴스 생성
my_dog = Dog("Rex", 5)

# 생성된 강아지의 정보 출력
print(f"My dog's name is {my_dog.name}.")
print(f"My dog is {my_dog.age} years old.")

# 메서드 호출
my_dog.sit()
my_dog.roll_over()

이 코드는 Dog 클래스의 인스턴스를 만들고, Rex라는 이름과 6이라는 나이를 할당합니다. 그리고 Rex가 "Woof"라고 말하는 것을 시뮬레이션합니다.

 

OOP의 주요 개념

  • 캡슐화: 데이터(속성)와 데이터를 처리하는 코드(메서드)를 하나의 객체로 결합하는 것입니다. 이렇게 하면 객체 내부의 구현 세부 사항을 숨기고 객체의 사용 방법만을 외부에 노출할 수 있습니다.
  • 상속: 한 클래스가 다른 클래스의 속성 및 메서드를 상속받을 수 있습니다. 이를 통해 기존 코드를 재사용하고 확장할 수 있습니다.
  • 다형성: 동일한 인터페이스나 메서드 호출이 다양한 형태의 객체에 대해 다른 동작을 할 수 있도록 합니다.
  • 추상화: 복잡한 실제 상황을 모델링하여 필요한 부분만을 간추려서 프로그램 코드에 반영하는 과정입니다.

객체지향 프로그래밍은 소프트웨어 개발의 다양한 문제를 해결하기 위해 널리 사용되며, 파이썬은 이러한 OOP 개념을 효과적으로 지원하는 매우 강력한 프로그래밍 언어입니다. 이를 통해 유지보수가 용이하고, 확장 가능하며, 재사용 가능한 코드를 작성할 수 있습니다.

728x90

'Python for Beginners' 카테고리의 다른 글

5.3 다형성  (0) 2023.03.20
5.2 상속  (0) 2023.03.20
4.4 CSV, JSON 파일 다루기  (0) 2023.03.20
4.3 파일 관리  (0) 2023.03.20
4.2 파일 쓰기(open 함수)  (0) 2023.03.20
Comments