作用域在 python 中的具体应用
6.3.1.访问局部作用域
def foo():
a = 20
print(a)
foo()
说明:
函数内部访问变量a
, 先在foo
函数内部查找。因为 a
确实是在函数内部声明的变量,然后就找到了a
6.3.2.访问外部作用域
a = 100
def foo():
print(a)
foo()
说明:
在
foo
函数内部,我们直接去访问一个变量a
,那么就会沿着作用域从内向外开始查找a
先查找
foo
的局部作用域,发现没有a
。然后继续去foo
函数的外部作用域,这个例子中就直接到了当前模块的全局作用域,所以找到了 a, 所以就输出了全局作用域中a
的值!
6.3.3.访问外部函数的作用域
def outer():
a = 20
def inner():
print(a)
inner()
outer()
说明:
我们在一个函数的内部声明了一函数,这种函数嵌套在 python 中是允许的。
内部函数
inner
执行的时候,访问变量a
,现在inner
内部找变量a
, 没有找到,然后去他外部的函数中找变量a
, 找到后, 就直接输出了他的值