python - python:检查变量重新定义为循环变量
问题描述
在 python 中,您可以通过为循环变量指定一个已经存在于其余代码中的名称来创建相当难以发现的错误。
该模式如下所示:
idx = 0 # the result of some calculations
for idx in range(10):
# do something
# use idx and expect it to be 0
# surprise, idx is actually 9
当然,显而易见的解决方案是使用更好的变量名。但是,即使您使用了非常具有描述性的名称,在您的代码中的其他地方,相同的名称仍然可能是一个不错的选择。
特别是在数字代码中,索引太多以至于很难跟踪。变量几乎永远不会超出范围:
for idx in range(10):
# do something
# idx is now in scope
# autocomplete will suggest idx, but it is still fine as a loop variable
for idx in range(10):
# do something
是否可以为这个问题设置一个 linter?
每当我将变量用作已在封闭范围中定义的循环变量时,我都希望得到警告。该规则需要范围及其子范围的概念。上面的第一个代码示例应该创建一个警告。在第二个示例中,循环变量已经存在于外部范围中,但它已定义在封闭范围的子范围内。那应该没问题。
解决方案
推荐阅读
- java - 什么是 Querydsl PathBuilder 字符串参数“变量”用于
- presto - BigQuery + Amazon Athena + Presto:对分区和列数的限制
- ruby-on-rails - 我如何在rails模型上使用ruby中的break
- docker - 如何使用 Google Cloud 从 Container Registry 部署 VM 映像
- python - “列表分配索引超出范围”错误如何修复?
- ios - 使用委托和协议(Swift)将数据传递回第一个视图控制器的问题
- apache-spark - Spark Streaming 重用物理计划
- python - 检查多个目录中是否存在文件夹
- javascript - 不明白如何更新 React 钩子
- html - 如何将文本与标题图像对齐?