Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- nlp
- clean code
- 머신러닝
- pytorch
- computervision
- 자료구조
- FGVC
- algorithm
- GAN
- FineGrained
- 딥러닝
- Depth estimation
- ML
- classification
- Torch
- REACT
- dl
- SSL
- nerf
- web
- PRML
- cs
- math
- 알고리즘
- Front
- Meta Learning
- 3d
- Vision
- Python
- CV
- Today
- Total
KalelPark's LAB
[CLEAN CODE] __str__ 과 __repr__의 차이 본문
Python에서의 일반적으로 자주 활용되는 메소드(Magic Method)인 __str__ 메서드와 __repr__ 메서드의 차이
두 메소드 간에는 미묘한 차이가 있습니다. 따라서 차이점을 명확하게 아는게 좋습니다.
공통점
- 두 메소드는 모두 "객체를 문자열로 반환"한다는 공통점이 존재
아래의 코드를 활용해보면 __repr__ 와 __str__이 겹친다는 것을 알 수 있습니다.
import torch
import torch.nn as nn
class model(nn.Module):
def __init__(self):
super().__init__()
self.linear1 = nn.Linear(10, 100)
self.linear2 = nn.Linear(100, 100)
self.linear3 = nn.Linear(100, 10)
def forward(self, x):
x = self.linear1(x)
x = self.linear2(x)
x = self.linear3(x)
return x
def __str__(self):
return (f"Hello fused")
def __repr__(self):
return (f"Hello word")
# def __str__(self):
# return (f"Hello fused")
temper = model()
print(temper.eval())
차이점
- __str__ 사용자의 interface에 초점이 되어 있으며, __repr__의 경우 개발자에 초점을 두었습니다.
결론 : 둘 중 하나 아무거나 쓸 것 같다..
'Python > CLEAN CODE' 카테고리의 다른 글
[CLEAN CODE] Attribute 관리하기, Getter, Setter (0) | 2023.03.20 |
---|---|
[ CLEAN CODE ] Tuple, namedtuple, logging, class method의 차이 (0) | 2023.03.18 |
[ CLEAN CODE ] itertools 내장 라이브러리 알아보기 (0) | 2023.03.17 |
[ CLEAN CODE ] Comparison, Generator? (0) | 2023.03.15 |
[ CLEAN CODE ] Dictionary defaultdict, Closure in local function? (1) | 2023.03.14 |
Comments