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

msc*_*msc 0 python

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

for i in range(4):
    d = i * 2
print(d)
Run Code Online (Sandbox Code Playgroud)

在线编译链接在这里.

Max*_*kin 5

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

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

for x in range(2):
    pass
print(x) # <--- x is accessible
Run Code Online (Sandbox Code Playgroud)

要么:

def f(x):
    if x:
        y = 1
    else:
        y = 2
    return y # <--- y is accessible
Run Code Online (Sandbox Code Playgroud)