개인 공부/Python_Study
Q. 클래스의 객체를 print()로 출력하는 방법
COSMOSUNION
2022. 6. 9. 16:04
문제 이해
클래스의 객체를 print() 함수로 호출할 경우, 원하는 문자열이 아닌 <main.Soldier.object at 0x7f7e3e3dc970>와 같은 형식으로 출력되었다.
해결 방법
1. 클래스 내에 __str__ 메소드를 정의하여 객체를 문자열로 반환
2. 클래스 내에 __repr__메소드를 정의하여 객체를 문자열로 반환
__str__ | __repr__ | ||
공통점 | 기능 | 객체를 문자열로 반환시키는 함수 | |
방법 | 클래스 내에 str 메소드 정의 | 클래스 내에 repr 메소드 정의 | |
차이점 |
목적 | (서로 다른 자료형의) 객체 간에 인터페이스로써 사용되는 목적 |
사용자가 이해가능한 표현으로 나타내기 위한 목적 |
예제 | ![]() |
![]() |
|
활용 | str 메소드 반환값은 eval함수에 사용 불가능 | repr 메소드 반환값은 eval함수에 사용 가능 | |
우선순위 | __str__ > __repr__ str 메소드가 정의된 경우 : str 메소드를 실행(우선순위) str 메소드가 정의되지 않은 경우 : repr 메소드를 실행 |

예제 코드(Github) :
Q. print()함수를 통해 클래스내에 생성된 인스턴스를 출력하는 방법 · cosmosunion/Python_troubleshooting@6
* 출력값 : 리스트형태 [<main.Soldier.object at 0x7f7e3e3dc970>,<main.Medic.object at 0x7f7e3e3ec760>,<main.Tank.object at 0x7f7e3e3ec7c0>] * 코드해석 : player_group은 리스트의 형태로 되어 있으며, 리스트...
github.com