python中的闭包
时间:2019-06-18
本文章向大家介绍python中的闭包,主要包括python中的闭包使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
闭包的定义:先定义一个函数func1,然后在定义的函数的内部再定义一个函数func2,并且这个内部函数func2,使用到了外边函数func1的变量,那么这个函数func2和用到的变量称为闭包。
在理解闭包之前,先来理解一下函数名,看以下代码:
def mm(): pass print(mm)
执行结果:
从上面可以看出;
在python中定义函数的时候,函数名也是一个变量,这个变量(函数名)指向了一个地址,这个地址对应的空间中存放函数执行体。
接下来是看一个简单的闭包程序:
1 # 闭包 2 def mm(num1): 3 def nn(num2): 4 print("nn==>",nn) 5 return num1 + num2 6 return nn 7 8 ret = mm(10) 9 ret1 = ret (20) 10 print("ret==>",ret) 11 print(ret1)
执行结果:
这段代码的执行过程是:
1.python解释器从上往下进行解析,遇到函数跳过;
2.当执行到第8行的时候,这时定义了一个变量ret,这个变量ret等于函数mm的返回值nn;
3.又因为nn是一个函数名,也就是说,此时的ret指向一个函数的引用(函数的地址),ret = nn。如上图中红色框部分。
4.当执行ret(20)的时候,相当于执行nn(20),最后返回的结果是30.
原文地址:https://www.cnblogs.com/xifengmo/p/11045185.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- selenium webdriver 如何添加cookie
- Flutter基础widgets教程-Scaffold篇
- python selenium 微信公众号历史文章随手一点就返回首页?郁闷之下只好将他们都下载下来。
- Flutter基础widgets教程-SimpleDialog篇
- python selenium 关于将网页打包为静态网页(mhtml)下载。
- Redis:哨兵
- Python中设置指定窗口为前台活动窗口(最顶层窗口)win32gui
- 关于pandas.eval使用的一些问题。
- Flutter基础widgets教程-Slider篇
- 带你认识Pytest(三)
- Additive Powers-of-Two (APoT) Quantization:硬件友好的非均匀量化方法
- Flutter基础widgets教程-SnackBar篇
- Redash 二开 - 后端环境搭建
- Flutter基础widgets教程-Stepper篇
- Flutter基础widgets教程-Switch篇