python - for 循环中不可变类型的突变尝试不会引发 SyntaxError?
问题描述
考虑以下代码。
a = [1, 2, 3]
for i in a:
i *= 2
a
#[1, 2, 3]
据我了解,就地操作符*=
试图通过 __iadd()__
. 假设type(i) == <class 'int'>
它通过循环,那么本例中的 for 循环不应该引发 SyntaxError 吗?(试图改变列表中的不可变整数?)
为什么它既不改变列表元素也不引发错误?
解决方案
推荐阅读
- mysql - 如何使用限制进行嵌套选择(WHERE)
- ios - 使用 Xcode (errSecInternalComponent) 构建颤振应用程序时,命令代码符号失败,退出代码为非零
- c# - HttpClient:异步发送请求时“资源暂时不可用”
- r - 如何匹配数据框中的字符串列表并按列表名称返回新列中的值
- python-3.x - Docker python3.8 alpine python-ldab 安装失败缺少 lber.h
- python-3.x - 如何在 python 中使用 selenium 选择文本并将其添加到电子邮件中?
- php - 使用 FPDF 的段落之间的换行符太高
- r - 如何在 R 中的另一个变量下分支多个变量?
- reactjs - 运行应用程序时未定义“react-redux”中的 useSelector
- office-js - 仅桌面版调试模式下的 OfficeJS 错误