极简方式理解python闭包操作
来源:互联网 发布:超级优化基因液 编辑:程序博客网 时间:2024/06/06 03:11
在学习闭包的过程中有不少疑惑,查看了一些书籍资料和很多前辈的博客,感觉大都写的比较严谨或者比较学术化,还是不能帮助新手理解闭包的操作过程,以下内容主要是基于个人为了好理解闭包操作而总结,并不严谨,仅供参考。
首先看什么是内部函数?
在函数内部声明的函数就是内部函数
格式:
def 函数名(): 局部变量... def 内部函数名(): Python功能代码...
示例:
def funName(): name = 'dragon' #定义一个内部函数 def inner(): print('我是内部函数')'''注释: 1.内部函数的本质就是局部变量(函数就是一个变量) 2.内部函数在函数外部不可以直接调用 3.内部函数在函数内部调用(当然,必须要定义内部函数之后才能调用)'''
内部函数是函数内部声明的函数,不能直接在外部函数调用,因此:把内部函数(或者局部变量)能够调到全局环境中使用的方法就是闭包操作
以下是闭包最常用方法
思路:为了把函数内部的局部变量和内部函数调到全局变量,就在函数内部再写一个函数,这个函数可以没有具体函数式,新建函数的目的就是利用return语句调出我们想要的局部变量和内部函数
格式:
def 函数名(): 局部变量... def 内部函数名(): pass return (局部变量,内部函数...)
示例:
# 定义一个函数def outer(): # 定义几个局部变量 money = 100 count = 10 strs = 'boys' # 定义一个内部函数 (比如算两个数的和) def inner(a,b): result = a + b print(result) # 新建函数myfunc用于调出我们想要的内部函数和局部变量 def myfunc(): pass return money,inner #带出我们想要的money变量和inner函数 return myfunc #带出装有我们想要的变量的函数myfunc
接下来一层层运行函数就可以得到我们想要的局部变量和内部函数了
# 运行outer函数返回得到myfunc函数,用func1接收func1 = outer()# 运行func1函数返回得到money变量和inner函数组成的元组,再通过索引分别得到func2 = func1() #用func2接收func1运行得到的元组# 获取money变量vars = func2[0]# 获取inner函数func = func2[1]
这样我们就成功把局部变量money和内部函数inner拿到全局环境中了!
Python学习交流、资源共享群:563626388 QQ
阅读全文
0 0
- 极简方式理解python闭包操作
- 浅显理解 Python 闭包
- Python:闭包的理解
- Python 闭包的理解
- python中的闭包理解
- 关于Python闭包的理解
- 理解Python闭包与延迟绑定
- Python 包的理解
- JavaScript——以简单的方式理解闭包
- 通过经典题目来理解多种闭包实现方式
- python的包管理方式
- 对python的闭包,装饰器的理解
- python闭包(Closure),用地址来理解
- Python闭包、函数式编程、装饰器深入理解
- 深入理解python中的闭包和装饰器
- python中的闭包以及对装饰器的理解
- python命令行方式操作数据库
- 深入理解Python的包机制
- Java练习--网络编程(14)
- 关于嵌入式C&&C++的一些编程问题(四)
- 1.web请求
- Tensorflow体验: 搭建 3D CNN
- 自学python(4)函数概述,参数,可变参数,关键字参数,组合参数,递归函数
- 极简方式理解python闭包操作
- ubuntu17.10 shadowsocks VPS 代理
- 【STL】 map
- 银行编码问题
- 练数成金特训营
- 操作系统之伙伴堆实现
- 运算符优先级
- 关于 cannot open directory '.': Permission denied
- Linux iconv GBK和UTF-8之间的转换