zoukankan      html  css  js  c++  java
  • 【Python】闭包Closure

    原来这就是闭包啊。。。

    还是上次面试,被问只不知掉js里面的闭包

    闭包,没听过啊。。。什么是闭包

    回来查了下,原来这货叫闭包啊。。。。。。

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

    闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。

    当一个内嵌函数引用其外部作作用域的变量,我们就会得到一个闭包. 总结一下,创建一个闭包必须满足以下几点:

    1. 必须有一个内嵌函数
    2. 内嵌函数必须引用外部函数中的变量
    3. 外部函数的返回值必须是内嵌函数

    感觉闭包还是有难度的,几句话是说不明白的,还是查查相关资料.

    重点是函数运行后并不会被撤销,就像16题的instance字典一样,当函数运行完后,instance并不被销毁,而是继续留在内存空间里.这个功能类似类里的类变量,只不过迁移到了函数上.

    闭包就像个空心球一样,你知道外面和里面,但你不知道中间是什么样.

    这个题挺有意思的,排序,但是出现在指定数组中的数字放在前面

     1 def sort_priority(num, group):
     2     flag = False
     3     def helper(x):
     4         nonlocal flag
     5         if x in group:
     6             flag = True
     7             return (0, x)
     8         return (1,x)
     9     num.sort(key=helper)
    10     return flag
    11 
    12 if __name__ == '__main__':
    13     num = [4,2,7,4,9,1,10]
    14     g = [4,7,10]
    15     sort_priority(num,g)
    16     print(num)

     参考资料:http://python.jobbole.com/85231/

  • 相关阅读:
    python 检测mobileprovision证书的过期时间
    dynamodb 分区键排序键介绍
    dynamodb 基本操作
    Python 实现一个栈
    openstack阅读链接
    mongoengine文档
    机器学习链接
    mongoengine的使用
    Timer(让函数定时执行)
    线程,进程,IO多路复用,协程的代码
  • 原文地址:https://www.cnblogs.com/fcyworld/p/6432676.html
Copyright © 2011-2022 走看看