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 | 31 |
Tags
- 알고리즘
- web
- Depth estimation
- 머신러닝
- Meta Learning
- Torch
- SSL
- FGVC
- GAN
- dl
- 3d
- Front
- FineGrained
- clean code
- Vision
- nerf
- math
- REACT
- pytorch
- ML
- computervision
- algorithm
- 자료구조
- cs
- 딥러닝
- nlp
- CV
- classification
- PRML
- Python
- 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