Python里面的对象,一般会分为可变对象和不可变对象。
可变对象一般都实现了__iadd__和__imul__方法,使用这个方法后,变量名不会关联到新对象。
不可变对象由于没有这两个特殊方法,变量名会关联到新对象上面。
像+=操作,默认使用__iadd__方法,当运算时发现对象没有这个方法,则回退使用__add__方法。
*=操作,默认使用__imul__方法,当运算时发现对象没有这个方法,则回退使用__mul__方法。