• 闭包的功能举例


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

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

     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>,)
  • 相关阅读:
    在 XD 和 Axure 中使用 iconfont
    chartjs 曲线图 纪要
    js ajax 等的的一些纪要
    程序员的方向
    sqlserver 常用的练习50例子
    (function(){})()原理
    layer弹出层详解
    sqlserver 表值函数 保存使用
    关于批量下载线程池与信号机制的使用
    tp5.1 phpstudy composer 配置等
  • 原文地址:https://www.cnblogs.com/NoteBook3013/p/10249559.html
Copyright © 2020-2023  润新知