[Python] 变量作用域相关

python作用域

首先先要明确的一点是python的变量作用域分为:loca, nonlocal, global, builtin

变量的查找顺序是由内到外的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 块级作用域
if 1 == 1
name = 'zjs'

print(name)

for i in range(10):
age = i

print(age)


# 局部作用域
def func():
name = 'zjs'

print(name)

作用域链

话不多说,直接上终极版

1
2
3
4
5
6
7
8
9
10
name = 'zjs'

def f1():
print(name)

def f2():
name = 'eric'
f1()

f2()

最终的输出是’zjs’

要明确的一点是,函数在未执行之前,作用域就已经形成了