지 구 여 행
Q. 클래스의 객체를 print()로 출력하는 방법 본문
문제 이해
클래스의 객체를 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
'개인 공부 > Python_Study' 카테고리의 다른 글
Python_예외처리(try, except) (0) | 2022.06.13 |
---|---|
Q. 클래스(Class) / 다중상속(Multiple Inheritance) (0) | 2022.06.11 |
Python_기본 연산자(Basic Operatiors) (0) | 2022.05.29 |
Python_Crawling, Scrapping, Parsing (0) | 2022.05.23 |
Python_모듈(Modules) (0) | 2022.05.22 |
Comments