• python闭包详解+实例演示


    “闭包”这个词语相信大多数学过编程的同学并不陌生,但是有时候理解起来还是有一定难度。先看定义:

    闭包是由函数和与其相关的引用环境组合而成的实体。比如参考资源中就有这样的的定义:在实现深约束时,需要创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起
    来的整体被称为闭包。

    python闭包(closure)其实并不是什么很复杂的东西。

    通俗的讲就是:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。它只不过是个“内层”的函数,由一个名字(变量)来指
    代,而这个名字(变量)对于“外层”包含它的函数而言,是本地变量。

    看到这里或许你依然不明白什么是闭包,没关系,看完下面的小例子你一定会明白!

     1 #! /usr/bin/env python
     2 # coding=utf-8
     3 # http://www.pythontab.com
     4 
     5 #定义一个函数
     6 def plus(number):
     7 
     8 #在函数内部再定义一个函数,其实这个里面的函数就被认为是闭包
     9 def plus_in(number_in):
    10 #这里打印一下number_in变量,以便大家可以更清楚传进来的变量时哪一个
    11 print str(number_in) + "\r\n"
    12 
    13 return number+number_in
    14 #其实这里返回的就是闭包的结果
    15 return plus_in
    16 
    17 
    18 #给plus函数赋值,这个20就是给参数number
    19 v1=plus(20)
    20 
    21 #注意这里的100其实给参数number_in
    22 
    23 print v1(100)

    运行结果:

    100

    120

    注意:100是print str(number_in) + "\r\n"打印的结果哦

    讲到这里大家明白什么是闭包了吧~~上次给大家推荐的python学习网站pythontab中文网 大家看了没?感觉不错吧,反正我感觉还是蛮专业的,更新很快,讲解也细致,不是做广告哈

  • 相关阅读:
    GET POST区别
    http1.0 1.1 2.0区别
    分布式系统理论之Quorum机制
    MySQL解析过程、执行过程
    redis常见问题和解决方案
    Windows下安装Linux虚拟机的用途和好处
    ping,telnet,ssh命令的理解
    强化学习入门 第五讲 值函数逼近
    强化学习入门第四讲 时间差分方法
    强化学习基础 第三讲 蒙特卡罗方法
  • 原文地址:https://www.cnblogs.com/blueel/p/2837673.html
Copyright © 2020-2023  润新知