Rollo的Python之路Python 闭包:Colsure

Posted rollost

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rollo的Python之路Python 闭包:Colsure相关的知识,希望对你有一定的参考价值。

Python 闭包:Closure.

定义:

python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure).

闭包是由函数及其相关的引用环境组合而成的实体.

函 数是一等公民(First class value:第一类对象,我们不需要像命令式语言中那样借助函数指针,委托操作函数),函数可以作为另一个函数的参数或返回值,可以赋给一个变量。函数可 以嵌套定义,即在一个函数内部可以定义另一个函数,有了嵌套函数这种结构,便会产生闭包问题

看先这个例子:

def outer(a):
    b = 10
    def inner():
        print(a+b)

    return inner()

inner函数是outer的内嵌函数,并且是outer的返回值。这个outer就是一个闭包(Closure)

 

注意事项:闭包中是不能修改外部作用域的局部变量的

作用:

1,当闭包执行完后,仍然能够保持住当前的运行环境。保留上次运行的结果

2,闭包可以根据外部作用域的局部变量来得到不同的结果,这有点像一种类似配置功能的作用,我们可以修改外部的变量,闭包根据这个变量展现出不同的功能。比如有时我们需要对某些文件的特殊行进行分析,先要提取出这些特殊行。

 

以上是关于Rollo的Python之路Python 闭包:Colsure的主要内容,如果未能解决你的问题,请参考以下文章

Rollo的Python之路Python 编码与解码

Rollo的Python之路Python 爬虫系统学习 Selenium 模拟登录

Rollo的Python之路Python Split()函数 的用法

Rollo的Python之路Python 爬虫系统学习 Requests 模块学习

Rollo的Python之路Python 爬虫系统学习 Selenium

Rollo的Python之路Python:格式化输出:%与format