闭包说的是在函数内部定义一个函数,但该函数包含一个对外部变量的引用,该变量引用范围仅限局部变量,不会延伸到全局变量
#!/usr/bin/env python#coding:utf-8#@Author:Andy# Date: 2017/6/14name = 'alex'def func(): name = 'egon' def bar(): print(name) # 包含对外部变量的引用,如果还找不到,继续,但不会到全局找 return barif __name__ == '__main__': b = func() print(b)
# 一定是引用当前局部环境之外的变量,但不会延伸到全局变量# 这里的b 得到的是对bar函数的引用,但已经包含了变量name = 'egon',类似包裹住一样# 如果你需要用的是bar函数,bar = func() ,这样就得到了闭包的bar函数# 调用bar()函数即可。
posted on 2017-06-19 19:35 阅读( ...) 评论( ...)