class test:
def __repr__(self):
return "done!!"
def __str__(self):
return "Not Done!"
test_a = test()
print(test_a)
print(str(test_a))
print(repr(test_a))
__str__
- __str__는 서로 다른 자료형 간에 interface를 제공하기 위해서 존재한다.
- 객체를 표현, representation 에 있다기보다는 추가적인 가공이나 다른데이터와 호환이 가능하도록 문자열화한다.
- ex) int, float, list 형태를 print를 같이하면 안되지만, print(a,b,c) 상태로 하면 가능하다.
- 원래는 TypeError가 떠야 정상이지만, __str__ 메소드를 내부적으록 구현을 하고 있기에 가능하다.
- 이는 __str__ 형태 때문에 가능한 일이다. python의 장점이다.
__repr__
- __repr__는 해당 객체를 인간이 이해할 수 있는 표현으로 나타내기 위한 용도이다.
- __str__을 정의하지 않을 경우, __repr__이 대신 쓰인다
<class 'nltk.stem.lancaster.LancasterStemmer'>
<class 'nltk.stem.lancaster.LancasterStemmer'>
위처럼 class의 형태가 어떤 것인지 Representation을 해주는 메소드를 __repr__라고 한다.
헷갈리지 말 것.
'대학원 공부 > programming language' 카테고리의 다른 글
Numpy : np.linalg.svd (SVD) (0) | 2020.03.12 |
---|---|
Python : module, package, library, framework (0) | 2020.03.11 |
Python : *args **kwargs (0) | 2020.02.21 |
Numpy : np.diag (대각선 요소의 값만 추출한 배열 구하기) (0) | 2020.02.21 |
Numpy : np.reshape, flatten, ravel, newaxis (차원 변경) (0) | 2020.02.21 |
댓글