Python에서 str() vs repr() vs print()
Source: Dev.to
개요
Python을 배우다 보면 종종 비슷해 보이는 세 가지 내장 유틸리티를 만나게 됩니다:
str()repr()print()
처음에는 모두 같은 일을 하는 것처럼 보일 수 있습니다—출력을 표시한다는 점에서—하지만 각각은 뚜렷한 목적을 가지고 있습니다.
str()
- 객체의 사용자 친화적인(읽기 쉬운) 표현을 반환합니다.
- 최종 사용자에게 표시하기 위해 설계되었습니다.
- 예시:
str("Hello\nWorld")는Hello\nWorld를 반환합니다(줄 바꿈이 실제로 해석됩니다).
repr()
- 객체의 개발자 지향(디버깅) 표현을 반환합니다.
- Python이 내부적으로 사용하는 정확한 형태를 보여주며, 따옴표와 이스케이프 문자까지 포함합니다.
- 예시:
repr("Hello\nWorld")는'Hello\\nWorld'를 반환하여\n을 그대로 보이게 합니다.
print()
- 객체의 문자열 표현을 콘솔에 출력합니다.
- 내부적으로 객체에 대해
str()을 호출한 뒤 출력합니다.
비교
| 함수 | 목적 |
|---|---|
str() | 사람이 읽기 쉬운 표현 |
repr() | 디버깅을 위한 정확하고 모호함이 없는 표현 |
print() | 출력 표시(str()을 내부적으로 사용) |
읽기 쉬운 출력(str())과 원시 내부 표현(repr())의 차이를 이해하면, 특히 디버깅이나 객체를 검사할 때 Python의 동작을 명확히 파악할 수 있습니다. 이 작은 개념은 명확하고 유지 보수하기 쉬운 코드를 작성하는 데 큰 도움이 됩니다.