zoukankan      html  css  js  c++  java
  • python3 闭包

    闭包说的是在函数内部定义一个函数,但该函数包含一个对外部变量的引用,该变量引用范围仅限局部变量,不会延伸到全局变量

    #!/usr/bin/env python
    #coding:utf-8
    #@Author:Andy
    # Date: 2017/6/14
    
    name = 'alex'
    
    def func():
    	name = 'egon'
    	def bar():
    		print(name) # 包含对外部变量的引用,如果还找不到,继续,但不会到全局找
    	return bar
    
    
    if __name__ == '__main__':
    	b = func()
    	print(b)
    

    # 一定是引用当前局部环境之外的变量,但不会延伸到全局变量
    # 这里的b 得到的是对bar函数的引用,但已经包含了变量name = 'egon',类似包裹住一样
    # 如果你需要用的是bar函数,bar = func() ,这样就得到了闭包的bar函数
    # 调用bar()函数即可。

  • 相关阅读:
    CF1450H2
    CF1379F2
    CF1217F
    CF1393E2
    CF1510H
    CF1514E
    CF1515G
    CF1516E
    在pycharm中导入PyMysql出错,解决方法
    搭建fastdfs文件服务器
  • 原文地址:https://www.cnblogs.com/Andy963/p/7009351.html
Copyright © 2011-2022 走看看