美文网首页python
获取函数(闭包)语法信息

获取函数(闭包)语法信息

作者: wit92 | 来源:发表于2020-06-13 00:04 被阅读0次

co_consts:还包含了内部函数

co_varnames:在本代码段中被赋值,但没有被内层代码段引用的变量

co_freevars(自由变量):在本代码段中被引用,在外层代码段中被赋值的变量

co_cellvars(内层代码所约束的变量):在本代码段中被赋值,且被内层代码段引用的变量

def f1(a, b, c, *d, e, f):
    x = 1

    def f2():
        inner_x = x

    return f2


ff = f1(1, 2, 3, 4, 5, 6, 7, e=8, f=9)
print('闭包:', ff.__code__.co_varnames)
print('闭包:', ff.__code__.co_freevars)
print('闭包:', ff.__code__.co_cellvars)

print('外部', f1.__code__.co_varnames)
print('外部', f1.__code__.co_freevars)
print('外部', f1.__code__.co_cellvars)

控制台打印结果:

闭包: ('inner_x',)
闭包: ('x',)
闭包: ()
外部 ('a', 'b', 'c', 'e', 'f', 'd', 'f2')
外部 ()
外部 ('x',)

相关文章

  • Swift 2 学习笔记 9.闭包

    课程来自慕课网liuyubobobo老师 闭包 闭包的基本语法 闭包语法的简化 结尾闭包 内容捕获 闭包和函数是引用类型

  • 闭包

    闭包的基本语法 闭包的内容捕获 闭包和函数的引用类型

  • Swift 闭包

    闭包是特殊的函数 Swift 中,闭包其实是一个特殊的函数,匿名函数 输出 闭包语法 简写: 简写规则: 如果是单...

  • Swift~ @escaping @noescaping 逃逸

    闭包表达式语法 闭包表达式语法有如下的一般形式: 闭包只有在函数中做参数时,才会区分逃逸闭包和非逃逸闭包 Swif...

  • swift闭包的使用

    /* 闭包: 函数是闭包的一种 类似于OC语言的block 闭包表达式(匿名函数) --能够捕获上下文中的值 语法...

  • 使用Playground快速练习Swift语法--闭包和枚举

    闭包 定义:闭包是自包含的函数代码块,可以在代码中被传递和使用。 闭包表达式语法 Swift闭包使用{}包含,in...

  • 前端笔记13

    封闭函数 用变量的方式定义函数 闭包 闭包存循环的索引值 闭包做私有变量计数器 闭包做选项卡 跳转原页面 获取地址...

  • python高级之闭包

    python高级之闭包 什么是闭包? 闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结...

  • 闭包

    闭包: 函数是闭包的一种类似于OC语言的block闭包表达式(匿名函数) -- 能够捕获上下文中的值 语法: in...

  • 闭包

    1.观察闭包 闭包:必须结合函数观察闭包。 错误信息:Uncaught ReferenceError: inner...

网友评论

    本文标题:获取函数(闭包)语法信息

    本文链接:https://www.haomeiwen.com/subject/nuytxktx.html