gpt4 book ai didi

python - 循环范围结束后自动销毁变量

转载 作者:太空宇宙 更新时间:2023-11-03 21:06:42 25 4
gpt4 key购买 nike

与 c 等其他语言不同,c++ 中变量的作用域保留在循环内。例如。

for(int i=0; i<5; i++)
{
do stuff;
}

i+=1 // raises error as i is not initialised.

相同的代码在 python 中工作

for i in range(5)
do stuff

i+=1 # doesn't raise error as i is initialised.

虽然这有时会很有帮助,但有时会很痛苦,因为我很少在循环后的代码中再次使用像 i, key, value 这样的变量名称,而不会遇到任何显式错误.

是否有比在循环后使用 del i 更Pythonic的方法来避免上述问题?

编辑:此问题已被标记为 Short description of the scoping rules? 的重复项我很久以前就见过了。该线程描述了范围界定如何在 python 中工作,而我的问题完全不同。请取消将此标记为重复项。

最佳答案

在 Python3 中,列表理解可能是一个答案......?

[print(i) for i in range(5)]
print(i)

>> 0
1
2
3
4

---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-598b4fd0c0c5> in <module>()
1 [print(i) for i in range(5)]
----> 2 print(i)

NameError: name 'i' is not defined

关于python - 循环范围结束后自动销毁变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55350907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com