_add__() 의 위치가 궁금 합니다.
410
작성한 질문수 14
class Fruit():
def __init__(self, name, price):
self.name = name
self.price = price
def __add__(self, other):
return self.price + other.price
f1 = Fruit('Orange', 7000)
f2 = Fruit('apple', 3000)
print(f1+f2)
print(dir(f1))
위 소스 보면 + 를 할면 알아서 __add__() 메소드가 호출 되는데요
print( dir(int)) 해보면
네임스페이스에 __add__가 보이고 해서 제 생각에
__add__() 메소드는 어딘가에 존재 하는 메소드 인데
int 클래스에서도 override 했고, Fruit 이라는 class에서도 override 했고
문법에서 + (더하기)를 하면 내부적으로 _add__()를
호출 하는구나 생각했습나다.
__add__() 메소드를 가지고 있는 class는 먼가요
자바처럼 Object 인건가요?
답변 1
0
네 내부적으로 type 클래스 하위에 구현되어 있고
구글 검색으로 __add__ 구현 형태를 파이썬 공식문서에 가보시면 확인 하실 수 있어요~
열심히 하시네요!!
0
강사님 안녕하세요! 질문자는 아닙니다만, 질문 게시글로 다시 쓰기보다는 댓글로 비슷한 주제로 다는 것이 다른 분들이 볼 때도 좋지 않을까 하여 댓글로 여쭤봅니다.
1. 다음과 같이 이해하는 게 맞을까요??
--------
그렇다면 print(type(int)) 에서 <class 'int> 를 확인했고, print(dir(int)) 에서 '__add__'라는 매직 메소드가 int class에 있다는 걸 확인했다.
' + ' 연산자를 사용하면
'int' class 에 __add__ 라는 메소드를 호출하여 계산한다.
그런데, 이는 magic method이므로 사용자가 원하는 대로 overriding을 하여 customizing 할 수 있다.
그래서
class Fruit():
def __init__(self, name, price):
self.name = name
self.price = price
def __add__(self, other):
return (self.price + other.price) + 0.8
이와 같이 작성할 수 있다.
----
2. 그러면 두 번째 질문입니다. 다른 질문 글에서 저럴 경우 '+' 로 기본 built in 함수 호출로 재귀적으로 호출되지 않나 라는 내용을 확인했습니다.
이에 대한 답변으로 '클래스 형태로 구현해서 메소드 상속을 통해서 구현해야 합니다. 나중에 수업에서 나와요~' 라고 하셨습니다. 상속, 오버라이딩 부분이면 level 3 강의까지 기다려야 하나요??
먼저 level 3의 상속 부분을 듣고 와도 이해하는데 문제가 되지 않나요???
loop is not defined
0
53
1
가상환경 설정이 안됩니다
0
48
1
__le__, __ge__ 관련 질문
0
47
0
atom 서비스 종료
0
60
1
atom 서비스 종료
0
57
1
진도미확인 (진도가 안 넘어감)
0
87
1
RuntimeError: There is no current event loop in thread 'MainThread'
0
132
1
chapter 07-01 실행 오류
0
109
1
Chapter05-04 : sum_func의 합이 이중 출력됩니다.
0
123
2
45. 병렬성 2 - Futures(5-1) wait가 의도된 대로 동작하지 않습니다.
0
144
2
멀티스레딩 - 44. 병렬성 1 - Futures(4-2)
0
120
2
chapter05_02 클로저 질문사항 !
0
95
1
LV1 설정
0
129
2
매직 메소드의 호출 방법 차이 문의
0
180
2
왜 numbers리스트를 만들때 str으로 숫자를 감싸나요?
0
143
2
스크랩핑 실습 중 Mac OS 인증서 문제
0
166
1
AsyncIO 멀티 스크랩핑 실습 예제 관련 질문
0
208
1
강의자료가 영상과 다릅니다
0
293
2
closure.cell_contents 초기화 하기 문의
0
177
2
map함수 사용 시, list변환 방법 문의
0
393
2
__mul__ 백터 * 숫지, 백터 * 백터 처리
0
175
1
del처리후 질문입니다.
0
211
1
car_list(car1,car2,car3) 인스턴스 tuple 타입 문의
0
264
1
coroutine에 대한 질문
0
278
1





