作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我在这里发布这个问题之前,我已经搜索过 SO,希望这不是重复的。
def print_me():
a_list = range(1, 10)
for idx, aa in enumerate(a_list):
pass
print(idx)
if __name__ == '__main__' : print_me()
输出如下:
8
我来自 C++ 世界,无法弄清楚为什么 idx
仍然在范围内代码在 for 循环之外?
谢谢
最佳答案
for
循环不创建任何作用域。这就是原因。
在此特定代码中,idx
是 print_me
函数的局部变量。
来自 the docs :
以下是 block :
更新
生成器表达式也有自己的作用域。
As of Python 3.0列表理解也有自己的范围。
关于python - for循环中变量的访问范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7715297/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!