콘텐츠로 건너뛰기

파이썬 __str__ 사용법

[

언제, 어떻게 .str() 메소드를 사용하는지 알아보기

Python에서 클래스 객체를 문자열로 변환하는 방법 중 하나는 .str() 메소드를 사용하는 것입니다. 이번 파이썬 튜토리얼에서는 .str()의 의미와 사용 방법에 대해 자세히 알아보겠습니다.

.str()이란?

  • .str()은 클래스에 정의된 메소드로써, 클래스 객체를 문자열로 나타내는 역할을 합니다.
  • .str() 메소드는 클래스 정의 내부에 포함되며, 객체를 print() 함수로 출력할 때 자동으로 호출됩니다.
  • .str() 메소드를 정의하지 않은 경우, 기본적으로는 객체의 주소를 나타내는 문자열이 출력됩니다.

.str() 메소드 사용 예시

class Car:
def __init__(self, color, mileage):
self.color = color
self.mileage = mileage
def __str__(self):
return 'a {self.color} car'.format(self=self)
my_car = Car("red", "1000")
print(my_car)
  • 위 예시에서는 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() 메소드를 사용하면 됩니다. 이는 파이썬에서 권장하는 방법으로, 객체를 문자열로 변환하는 작업을 손쉽게 수행할 수 있게 해줍니다.