반환된 문자열은 주로 디버깅이나 개발자용 출력에 사용되며, 가능하다면 해당 문자열로 동일한 객체를 생성할 수 있어야 합니다.
개발자에게 객체의 내부 구조를 명확히 전달하는 것이 목표입니다.
사용:
repr() 함수 호출 시 실행됩니다.
대화형 인터프리터에서 객체를 입력하면 repr()의 결과가 출력됩니다.
권장 사항:
repr 메서드는 객체를 재생성할 수 있는 문자열 표현을 반환하는 것이 이상적입니다.
재생성이 불가능한 경우에도 객체의 중요한 정보를 명확히 보여줘야 합니다.
예제
classPerson:def__init__(self, name, age):
self.name = name
self.age = age
def__repr__(self):
return f"Person(name={self.name!r}, age={self.age!r})"
p = Person("Alice", 30)
print(repr(p)) # 출력: Person(name='Alice', age=30)
str (String)
목적:
str 메서드는 객체의 비공식적이고 사용자 친화적인 문자열 표현을 반환합니다.
반환된 문자열은 사용자에게 직접 보여줄 때 사용되며, 읽기 쉽고 자연스러운 형태를 제공합니다.
사용:
str() 함수 호출 시 실행됩니다.
print() 함수로 객체를 출력하거나, 문자열 포매팅(f"{obj}")에 사용됩니다.
권장 사항:
str 메서드는 사용자가 이해하기 쉬운 표현으로 객체를 설명해야 합니다.
필요에 따라 간결하고 요약된 정보를 제공할 수도 있습니다.
예제
classPerson:def__init__(self, name, age):
self.name = name
self.age = age
def__str__(self):
return f"{self.name}, {self.age} years old"
p = Person("Alice", 30)
print(str(p)) # 출력: Alice, 30 years old
print(p) # 출력: Alice, 30 years old