为什么局部变量在for循环结束后可见且可访问?

时间:2017-02-23 18:06:28

标签: python

我想知道python,为什么dfor循环结束后可见并且可以访问?C中,这是不可能的。它在python中有效吗?

for i in range(4):
    d = i * 2
print(d)

在线编译链接here

1 个答案:

答案 0 :(得分:5)

Python没有块范围的变量。相反,它具有功能范围,类范围和全局范围。

换句话说,在该点之后可以访问函数中任何位置初始化的变量。 E.g:

for x in range(2):
    pass
print(x) # <--- x is accessible

或者:

def f(x):
    if x:
        y = 1
    else:
        y = 2
    return y # <--- y is accessible