zoukankan      html  css  js  c++  java
  • 闭包的功能举例

    闭包可以在函数外部或者其他函数内,访问本函数内的变量:

    闭包可以使变量持久,常驻内存,又可以避免变量被外部修改

     1 def func():
     2     name = "大傻子"            #定义个name = "大傻子"
     3     def func1():
     4         return name             #把name返回给func1
     5     return func1                #把func地址返回给func
     6 
     7 def func2():
     8     name = func()()             #把func1的返回值name = "大傻子" 赋值给新name
     9     def func3():
    10         print(name)             #打印新name = "大傻子"
    11         print("哈哈")
    12         return "嘻嘻"          #返回字符串"哈哈"给func3
    13     return func3                #返回func3的地址给func2
    14 print(func2())                  #调用func2,返回func3地址
    15 print(func2()())                #调用func3,返回"嘻嘻"

    结果对照:

    1 大傻子
    2 哈哈
    3 嘻嘻

    如何查看函数是否是闭包:(未粘贴上面代码)

    1 print(func() .__closure__)      #查看函数是否是闭包,,返回非None就是闭包
    2 print(func2() .__closure__)      #查看函数是否是闭包,,返回非None就是闭包

    结果对照:

    1 (<cell at 0x0000022D0785C888: str object at 0x0000022D0783BF90>,)
    2 (<cell at 0x0000022D0785C888: str object at 0x0000022D0783BF90>,)
  • 相关阅读:
    php 工厂模式实例
    nginx多虚拟主机配置
    PHP提高编程效率的方法
    PHP 多态
    锁机制之PHP文件锁
    深入认识javascript中的eval函数(转载)
    PHP&MYSQL 常用的一些性能检测
    寒假作业1:问答题
    软件测试基础知识总结
    七种测试驱动模式
  • 原文地址:https://www.cnblogs.com/NoteBook3013/p/10249559.html
Copyright © 2011-2022 走看看