파이썬 던더 메소드에 관하여 질문 합니다.
조회수 513회
class Food:
def __init__(self,taste,calorie):
self._taste = taste
self._calorie = calorie
def __gt__(self, other):
if self._taste == other._taste:
return(self._calorie < other._calorie)
else:
return self._taste > other._taste
strawberry = Food(9, 32)
potato = Food(6, 66)
print(strawberry < potato)
안녕하세요 파이썬 공부중인 초보자입니다. 공부 중 모르는게 생겨서 질문 드립니다.
클래스 던더 메소드를 정의하는 과정에서 __gt__(self, other)
메소드는 self > other
연산을 호출하는 경우라고 알고 있습니다.
근데 위에 코드를 봐주시면, 실행 시에 print(strawberry < potato)
라고 self < other
연산을 실행하도록 했음에도 위에 정의한 __gt__()
메소드가 실행되더라구요. 저는 __lt__()
라는 self < other
를 호출하는 메소드가 따로 있길래 __gt__()
에서 실행이 안될 거라고 생각했는데... 이런 경우에는 왜 그런 건가요? 검색해봐도 모르겠어서 질문 남겨봅니다 도와주세요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력