loops - 在其上下文附近定义变量或避免重复分配/初始化之间哪个更好?
问题描述
我的例子来自 Python,但我猜这个概念适用于大多数语言。假设我有以下场景
for element in big_list:
temp_var=something # This remains constant throughout the iterations
# Looping clause
这里,temp_var
是循环中必需的常量变量。for
但如果它保持不变,我应该在开始循环之前定义它吗?这里有两个相互矛盾的原则
- 变量应该以尽可能小的范围定义,以免拥挤命名空间。它是上述做法的一个论据,它也使变量更接近使用上下文。
- 但是在循环内部定义需要在每次迭代中重复初始化和分配。或者它是编译器/解释器优化的东西,所以我无论如何都可以视而不见?
解决方案
由于变量在循环内不会改变,我肯定选择在循环之前定义它。此外,如果变量在退出循环之前未未分配,则原因 1 是无用的,我的意思是,它在循环后将保持活动状态。退出循环后,您可以取消设置变量。所以,我的方法是:
temp_var = something # This remains constant throughout the iterations
for element in big_list:
# Looping clause
# loop ended
del temp_var # If it's not needed anymore
很抱歉我不会管理python,但我认为这个“代码”很容易理解,并且适用于几乎任何语言。
推荐阅读
- angular - 无法在 mat-icon 中加载自定义 SVG
- php - 通过直接 URL 的全局变量或无法访问的链接
- pm2 - PM2 无法在集群模式下写入日志文件
- php - 重置 mPDF 中的 writeHTML() 缓冲区
- r - R data.table 按列值设置子集
- python - 人脸识别功能在静态路径下工作正常,但在烧瓶后请求中的动态路径失败
- wordpress - 如何在 WooCommerce template-homepage.php 上获取 ACF 数据
- javascript - 使用连续拆分或正则表达式从文件名中获取元素
- excel - 应该引用什么对象来使用 UsedRange 属性?
- javascript - 如何从“[object Object]”字符串中获取 JavaScript 对象?