python的闭包

首先python闭包的作用,一个是自带作用域,另一个是延迟计算。

闭包是装饰器的基础。

闭包的基本形式:

——————————————————————————

def 外部函数名():

  内部函数需要的变量

  def 内部函数名()

    引用外部的变量

  return 内部函数

——————————————————————————

需要注意的是:

函数的作用域关系在函数定义阶段就已经固定,与调用位置无关。

无论函数在何处调用,都需要回到定义阶段去找对应的作用域关系。

例子:

def tell_info(name):print("%s have money %s" %(name,money))
def foo():money = 100tell_info("bill")
foo()

该代码tell_info("bill")是在foo函数中调用,但仍然需要回到定义阶段去找作用域关系,而

定义的时候引用的money就是全局的Money,当全局不存在money的时候则报错,抛出未定义错误。

所以该段代码会报错。

转载于:https://www.cnblogs.com/ArmoredTitan/p/7932935.html

python的闭包函数相关推荐

  1. python中闭包函数_Python的闭包问题(关于内嵌函数引用闭包函数的变量问题)

    一.闭包: 记得:闭包的特性就是:内嵌函数会保存它引用的外围函数的变量值. 闭包概念:在一个内部函数中,对外部作用域的变量进行引用,(并且一般外部函数的返回值为内部函数),那么内部函数和被引用的变量等 ...

  2. python 获取闭包函数的参数

    def f2():a = 2b = 3return lambda k: a * b * k g2 = f2()print(g2.__closure__)a2 = g2.__closure__[0] b ...

  3. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  4. python基础(7)-函数命名空间作用域闭包

    函数 动态参数 *args 1 def sum(*args): 2 ''' 3 任何参数都会被args以元组的方式接收 4 ''' 5 print(type(args)) # result:<c ...

  5. Python基础day4 函数对象、生成器 、装饰器、迭代器、闭包函数

    一.函数对象 正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松 ...

  6. python教程:闭包函数

    一:大前提 闭包函数 = 名称空间与作用域 + 函数嵌套 + 函数对象 核心点:名字的查找关系是以函数定义阶段为准 二:什么是闭包函数 "闭"函数指的该函数是内嵌函数 " ...

  7. python高阶函数闭包装饰器_5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器...

    一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰 ...

  8. python高阶函数闭包装饰器_Python自学从入门到就业之高阶函数、嵌套函数、闭包、装饰器...

    高阶函数 在Python中,函数其实也是一种数据类型. def test(): return 'hello world' print(type(test)) # 函数对应的数据类型是 function ...

  9. python中msg函数_Python 知识点考点之闭包

    1.预备知识--作用域(global vs local) 作用域是程序运行时变量可被访问的范围,定义在函数内的变量是局部变量. global: num = 10 # 全局作用域变量 def foo() ...

最新文章

  1. rn php,rn怎样在PHP的正则表达式中匹配到?
  2. Fiddler常用功能介绍
  3. sql语句的编程手册(2)
  4. LWIP裸机环境下实现TCP与UDP通讯(转)
  5. C++顺序容器之deque初探
  6. 学plc好还是python好_PLC是学西门子的好还是学三菱的?
  7. 13-5 15 xshell使用xftp pure-ftpd
  8. [转]JavaSE学习 Swing(二)
  9. 为什么工作7年又来开博客?
  10. MQ学习(一)----JMS规范(转发整合)
  11. Spring Cloud 子项目
  12. 开源三维地球Cesium中如何离线加载卫星影像和高程DEM数据
  13. 「 强烈推荐」程序员必备14款GIF制作的工具
  14. 南邮计算机就业,这两所大学实力强劲,从专业到就业率分析,来看看谁更强吧...
  15. Java获取今天是星期几
  16. python打造最全画地图,可视化数据
  17. selenium碰到 href = ‘/‘ 这样的一个链接怎么办
  18. cond怎么读_cond condition是什么意思
  19. 约四成的平板和智能手机用户看电视时“一心多用”
  20. 特斯拉Model3车主称无法开启;传高通开发首款笔记本处理器;Dfinity挑战亚马逊 | 雷锋早报...

热门文章

  1. Linux下编译build的命令,Linux命令行下编译Android NDK的示例代码
  2. decorator java_装饰器模式-Decorator(Java实现)
  3. java变量数据类型_Java——变量和数据类型
  4. xa 全局锁_分布式事务如何实现?深入解读 Seata 的 XA 模式
  5. 吐槽小程序开发踩过的坑,以及一些解决方法
  6. Java程序员的春天!java引用数据类型和基本数据类型区别
  7. 【深度学习入门到精通系列】阿里云人工智能平台的使用方法
  8. python【力扣LeetCode算法题库】面试题 01.06-字符串压缩
  9. win10解决Mysql net start mysql启动,提示发生系统错误 5 拒绝访问
  10. python压缩文件夹下的所有文件_python压缩文件夹内所有文件为zip文件的方法