덧셈의 경우 피연산자 두 개가 같은 자료형이어야 하며, 둘 다 변경되지 않지만 동일한 자료형의 시퀀스가 새로 만들어진다,
덧셈 및 곱셈 연산자는 언제나 객체를 새롭게 만들고, 피연산자를 변경하지 않는다.
리스트의 리스트를 초기화해야 하는 경우가 종종 있다.
내포된 리스트를 초기화할 때 지능형 리스트를 사용하는 것이 좋다.
board = [['_'] * 3 for i in range(3)]
board
#지능형 리스트
board = []
for i in range(3):
row =['_'] * 3
board.append(row)
시퀀스에 대한 평범한 덧셈 및 곱셈 연산에 대해서 설명했지만, 타깃 시퀀스의 가변성에 따라 상당히 다른 결과를 가져오는 +=와 *= 연산자도 있다.(이는 복합 할당 연산자)
+=과 *=등의 복합 할당 연산자가 작동하도록 특수 매서드는 iadd()다. 그러나, iadd()() 메서드가 구현되지 있지 않다면 add()메서드를 호출한다.
a += b
"""
a가 __iadd__()메서드를 구현하면 구현된 메서드가 호출이 되고, a가 list, bytearray,array.array등 가변 시퀀스인 경우 a의 값이 변경된다.
"""