에러 코드를 반환하면, 두 피연산자의 자료형이 다른 경우 파이썬 인터프리터가 역방향 연산자 메서드 호출
을 시도해 볼 수 있기 때문이다.
지금까지
__add__()
와
__radd__()
메서드를 구현해
+
연산자를 안전하게 오버로드했다. 이
제부터 또 다른 중위 연산자인
*
연산자를 구현해보자.
16
.
5
스칼라 곱셈을 위한
*
연산자 오버로딩
Vector([1, 2, 3]) * x
가 뜻하는 것은 무엇일까?
x
가 숫자면 이 문장은 스칼라 곱셈이 되
며, 그 결과로 벡터의 각 항목에
x
를 곱해서 새로운
Vector
객체가 생성된다. 이를 요소별 곱
elementwise
multiplication
이라고도 한다.
>>> v1 = Vector([1, 2, 3])
>>> v1 * 10
Vector([10.0, 20.0, 30.0])
>>> 11 * v1 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.