__str__ 메서드

샤워실의 바보·2024년 2월 29일
0

Python

목록 보기
1/3
post-thumbnail

Python의 __str__ 메소드는 객체의 인간이 읽을 수 있는 표현을 제공하기 위해 커스텀 클래스에서 오버라이드할 수 있는 내장 함수입니다. 객체를 출력하거나 str() 함수를 사용해 객체를 문자열로 변환할 때, Python은 자동으로 해당 객체의 클래스의 __str__ 메소드를 호출합니다.

__str__을 사용하는 이유:

__str__ 메소드를 사용하는 주된 이유는 코드의 이해성을 향상시키기 위해서, 특히 디버깅할 때 유용합니다. 커스텀 __str__ 메소드 없이 객체를 출력하면 객체의 메모리 주소를 포함한 덜 정보적인, 일반적인 표현이 결과로 나타나며, 이는 객체의 상태나 속성을 이해하는 데 종종 도움이 되지 않습니다.

__str__ 구현 방법:

__str__ 메소드를 구현하려면 클래스 내에 이를 정의합니다. 이 메소드는 객체를 의미 있는 방식으로 나타내는 문자열을 반환해야 합니다. 개념을 명확히 하기 위한 예시는 다음과 같습니다:

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def __str__(self):
        return f"'{self.title}' by {self.author}"

# Book 인스턴스 생성
my_book = Book("The Great Gatsby", "F. Scott Fitzgerald")

# Book 인스턴스 출력
print(my_book)  # 출력: 'The Great Gatsby' by F. Scott Fitzgerald

Book 클래스 예시에서, __str__ 메소드는 책의 제목과 저자를 포함한 문자열을 반환합니다. Book 클래스의 인스턴스를 출력하면 일반 객체 표현 대신 잘 포맷된 문자열을 얻게 됩니다.

요약:

  • 목적: 사람들을 위한 읽기 쉽고 정보적인 객체의 문자열 표현을 제공합니다.
  • 사용법: print() 함수와 str() 함수에 의해 자동으로 호출됩니다.
  • 구현: 기본 동작을 오버라이드하기 위해 클래스 내에 정의하며, 반드시 문자열을 반환해야 합니다.

이 메소드는 클래스의 사용성과 가독성을 향상시켜 Python 코드를 더 직관적이고 유지보수하기 쉽게 만듭니다.

profile
공부하는 개발자

0개의 댓글