作用域在 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()

说明:

  1. foo函数内部,我们直接去访问一个变量 a,那么就会沿着作用域从内向外开始查找a

  2. 先查找foo的局部作用域,发现没有a。然后继续去foo函数的外部作用域,这个例子中就直接到了当前模块的全局作用域,所以找到了 a, 所以就输出了全局作用域中a的值!


6.3.3.访问外部函数的作用域

def outer():
    a = 20

    def inner():
        print(a)

    inner()


outer()

说明:

  1. 我们在一个函数的内部声明了一函数,这种函数嵌套在 python 中是允许的。

  2. 内部函数inner执行的时候,访问变量a,现在inner内部找变量a, 没有找到,然后去他外部的函数中找变量a, 找到后, 就直接输出了他的值


Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""