float 값의 정수 값을 추가로 다른 행동, 내가 플로트로 불려 갔을 경우 __add__
방법은 이와 같은, 잘 작동하고 있음을 깨달았다파이썬 : __add__ 및 +, 부동 소수점 및 정수
>>> n = 2.0
>>> m = 1
>>> n.__add__(m)
3.0
하지만, 정수에 호출되지 않은 경우 :
>>> m.__add__(n)
NotImplemented
은 처음에는 __add__
그냥 int
및 float
유형 다르게 구현 (유형을 int로 추가 할 수 받아들이는 플로트 타입 같은, 그러나 반대하지 않음)되었다는 생각했다. 그렇다면 + 연산자를 사용하면 모든 것이 잘 작동하는 것으로 나타났습니다.
>>> n + m
3.0
>>> m + n
3.0
왜 이런 일이 일어나는 지 알고 계십니까? __add__
과 +
은 서로 깊이 관련이 있습니까?
'm .__ radd __ (n)'에 대해서도'NotImplemented'가 리턴되었습니다. –
@ this-vidor : 잘못된'__radd__' 메소드가 있습니다. – user2357112
@ user2357112 사실! 그러면 그것은 해결책입니다. –