IT

파이썬 Object Class 정의

carnival6103 2025. 2. 5. 22:12
반응형

파이썬에서 모든 클래스는 기본적으로 object 클래스를 상속받습니다. object 클래스는 파이썬의 모든 클래스의 최상위 클래스(루트 클래스)로, 모든 클래스는 object 클래스로부터 상속받은 메서드와 속성을 가집니다.

object 클래스의 역할

  • 기본 메서드 제공: object 클래스는 모든 클래스가 기본적으로 사용할 수 있는 메서드를 제공합니다. 예를 들어, __init__, __str__, __repr__, __eq__ 등의 메서드가 있습니다.
  • 상속 구조의 루트: 모든 클래스는 object 클래스를 상속받기 때문에, 파이썬의 클래스 상속 구조의 루트가 됩니다.

주요 메서드

  • __init__(self): 객체가 생성될 때 호출되는 초기화 메서드입니다.
  • __str__(self): 객체를 문자열로 표현할 때 호출되는 메서드입니다. print() 함수로 객체를 출력할 때 사용됩니다.
  • __repr__(self): 객체의 공식적인 문자열 표현을 반환하는 메서드입니다. 주로 디버깅과 개발 과정에서 사용됩니다.
  • __eq__(self, other): 두 객체가 같은지 비교하는 메서드입니다.

예시: object 클래스 상속

class MyClass(object):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return f"MyClass with value: {self.value}"

    def __repr__(self):
        return f"MyClass({self.value})"

    def __eq__(self, other):
        if isinstance(other, MyClass):
            return self.value == other.value
        return False

# 인스턴스 생성
obj1 = MyClass(10)
obj2 = MyClass(10)
obj3 = MyClass(20)

# 메서드 사용
print(obj1)  # 출력: MyClass with value: 10
print(repr(obj1))  # 출력: MyClass(10)
print(obj1 == obj2)  # 출력: True
print(obj1 == obj3)  # 출력: False

이 예제에서는 MyClass가 object 클래스를 상속받아 정의되었습니다. __init__, __str__, __repr__, __eq__ 메서드를 오버라이딩하여 객체의 초기화, 문자열 표현, 비교 기능을 구현했습니다.

반응형