복합 할당 연산자

매일 공부(ML)·2023년 3월 21일
0

Fluent Python

목록 보기
97/130

연산자 오버로딩:제대로하기

객체지향 상용구

복합 할당 연산자

#복합 할당이 불변 타깃을 처리할 때는 객체를 생성하고 다시 바인딩한다.
v1 = Vector([1,2,3])
v1_alias = v1
id(v1)
v1 += Vector([4,5,6])
v1
v1_alias
v1 *= 11
v1
id(v1)

클래스가 인플레이스 연사자를 구현하지 않으면, 복합 할당 연산자는 단지 편의 구문으로서, a += b를 정확히 a = a +b와 동일하게 평가하고, 가변형의 경우 이렇게 동작하는 것이 타당하므로, add() 메서드가 구현되어 있으며 아무런 코드를 추가하지 않고도 += 연산자가 구동한다.


#AddableBingoCage 객체 사용법

vowels = 'AEIOU'
globe - AddableBingoCage(vowels)
globe.inspect()
globe.pick() in vowels
len(globe.inspect())
globe2 = AddableBingoCage('XYZ')
globe3 - globe + globe2

profile
성장을 도울 아카이빙 블로그

0개의 댓글