파이썬 __str__ 사용법
언제, 어떻게 .str() 메소드를 사용하는지 알아보기
Python에서 클래스 객체를 문자열로 변환하는 방법 중 하나는 .str() 메소드를 사용하는 것입니다. 이번 파이썬 튜토리얼에서는 .str()의 의미와 사용 방법에 대해 자세히 알아보겠습니다.
.str()이란?
- .str()은 클래스에 정의된 메소드로써, 클래스 객체를 문자열로 나타내는 역할을 합니다.
- .str() 메소드는 클래스 정의 내부에 포함되며, 객체를 print() 함수로 출력할 때 자동으로 호출됩니다.
- .str() 메소드를 정의하지 않은 경우, 기본적으로는 객체의 주소를 나타내는 문자열이 출력됩니다.
.str() 메소드 사용 예시
- 위 예시에서는 Car 클래스에 .str() 메소드를 추가했습니다.
- 이 때, .str() 메소드는 “a {self.color} car”라는 문자열을 반환합니다. 여기서 {self.color}는 객체의 color 속성을 나타냅니다.
- my_car 객체를 print() 함수로 출력하면, “a red car”라는 결과가 출력됩니다.
- 즉, .str() 메소드를 정의함으로써 객체를 원하는 형식의 문자열로 변환할 수 있습니다.
.str() 메소드와 문자열 변환
- 객체를 문자열로 변환하려면, 내장 함수인 str()을 사용하면 됩니다. 이 함수는 내부적으로 .str() 메소드를 호출합니다.
- print() 함수와 같은 텍스트 표현을 다루는 함수들도 내부적으로 str() 함수를 호출합니다.
- 예를 들어, format 문자열로 객체를 포맷팅하는 경우에도 .str() 메소드가 호출되어 결과를 얻을 수 있습니다.
.str() vs .repr()
- .str() 메소드와 유사한 메소드로 .repr()이 있습니다.
- .repr() 메소드는 객체를 문자열로 표현할 때 사용됩니다.
- .str() 메소드와 .repr() 메소드의 차이점은 다음과 같습니다.
.str() | .repr() |
---|---|
일반적인 문자열 표현 | 개발자용 문자열 표현 |
print() 함수에 의해 자동으로 호출 | 객체를 나타내는 문자열 반환 |
str() 함수와 관련 함수들이 내부적으로 호출 | repr() 함수와 관련 함수들이 내부적으로 호출 |
이상으로, .str() 메소드에 대한 설명을 마치겠습니다. 클래스의 객체를 원하는 형식으로 문자열로 변환하기 위해서는 .str() 메소드를 사용하면 됩니다. 이는 파이썬에서 권장하는 방법으로, 객체를 문자열로 변환하는 작업을 손쉽게 수행할 수 있게 해줍니다.