중위 연산자 오버로딩에서 가장 중요한 부분을 알아봤으니, 이제 복합 할당 연산자를 살펴보자.
16
.
9
복합 할당 연산자
우리가 구현한
Vector
클래스는 이미
+=
과
*=
복합 할당 연산자
augmented
assignment
operator
를 지원
한다. 불변형 수신 객체에 적용할 때 복합 할당 연산자는 인스턴스를 새로 만들어 왼쪽 변수에
다시 바인딩하기 때문이다.
실제 어떻게 작동하는지 [예제
16
-
16
]에서 알아보자.
예제
16-16
Vector
인스턴스에
+=
과
*=
사용하기
>>> v1 = Vector([1, 2, 3])
>>> v1_alias = v1 ❶
>>> id(v1) ❷
4302860128
>>> v1 += Vector([4, 5, 6]) ❸
>>> v1 ❹
Vector([5.0, 7.0, 9.0])
>>> id(v1) ❺
4302859904
>>> v1_alias ❻
Vector([1.0, 2.0, 3.0])
>>> v1 *= 11 ❼
>>> v1 ❽
Vector([55.0, 77.0, 99.0])
>>> id(v1)
4302858336
❶ 별명을 생성해
Vector
([
1
,
2
,
3
])
인스턴스를 나중에 다시 조사할 수 있게 한다.
❷ 원래
Vector ...
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.