标签: python list
请考虑以下代码。
a = [1, 2, 3] for i in a: i *= 2 a #[1, 2, 3]
据我了解,诸如*=之类的就地运算符试图通过__iadd()__对该元素进行突变。假设type(i) == <class 'int'>遍历整个循环,那么本示例中的for循环是否不应该引发SyntaxError? (用于尝试从列表中更改不可变整数吗?)
*=
__iadd()__
type(i) == <class 'int'>
为什么既不更改列表元素也不引发错误?