美文网首页
546. 【Lua】自省机制(Introspective Fac

546. 【Lua】自省机制(Introspective Fac

作者: 七镜 | 来源:发表于2023-01-10 20:54 被阅读0次

调试库中主要的自省函数是 getinfo,该函数的第一个参数可以是一个函数或一个栈层次。当为某个函数 foo 调用 debug.getinfo(foo) 时,该函数会返回一个包含与该函数有关的一些数据的表。这个表可能具有以下字段。

  1. source: 该字段用于说明函数定义的位置。如果函数定义在一个字符串中(通过调用 load),那么 source 就是这个字符串;如果函数定义在一个文件中,那么 source 就是使用 @ 作为前缀的文件名。
  2. short_src: 该字段是 source 的精简版本(最多 60 个字符),对于错误信息十分有用。
  3. linedefined: 该字段是该函数定义在源码中最后一行的行号。
  4. what: 该字段是该函数的一个适当的名称,例如保存该函数的全局变量的名称。
  5. namewhat: 用于说明上一个字段的含义,可能是“global”、“local”、“method”、“field” 或 “”(空字符串)。空字符串表示 Lua 语言找不到该函数的名称。
  6. nups: 该字段是该函数的上值的个数。
  7. nparams: 该字段是该函数的参数个数。
  8. isvararg: 该字段表明该函数是否为可变长参数函数(一个布尔值)。
  9. activeline:该字段是一个包含该函数所有活跃行的集合。活跃行(active line)是指除空行和只包含注释的行外的其他行。
  10. func:该字段是该函数本身。

相关文章

  • KONGAPI插件开发

    背景 kong的插件开发是基于lua开发的,原理是基于lua-nginx-module的机制。kong的机制其实同...

  • Python常见的基础面试题(day02)

    1.Python的自省机制,以及比较常见的自省机制(函数用法) 什么是自省自省就是程序在运行的时候可以明确的知道对...

  • Lua脚本中实现Class机制

    纯lua脚本实现c++中的类的概念机制,后面空了把lua和c++的交互,lua中直接声明和使用c++中定义的对象补...

  • Lua的hook机制及内存泄漏检测

    最近突然有了对lua内存泄漏进行检测的需求,去研究了一下lua的说明书,发现lua的hook机制可以很好地满足要求...

  • 大话C与Lua(五) 面向对象的数据结构——userdata

    如何实现面向对象? 熟悉Lua的同学都知道!在Lua内部已经实现了面向对象的基本机制(table), 同时也为宿主...

  • python属性描述符

    1.对象的自省机制 自省是通过一定的机制查询到对象的内部结构 dir(obj) dir(obj)可以获取一个对象所...

  • lua实现多继承

    lua对于面向对象的支持主要通过table来实现,每个table都是一个对象,对于继承,lua有元表的机制,通过s...

  • lua入门笔记6 弱引用table

    基础知识 Lua有着自己的自动内存管理。程序只需要负责创建对象,而不需要去删除对象。通过垃圾回收机制,lua会自动...

  • Gandiva:Introspective Cluster Sc

    OSDI 2018 深度学习自省调度系统研读笔记。作者:Wencong Xiao 用户需要运行一系列的jobs以得...

  • 学习时避免错觉和记忆扭曲

    前面的章节里我们提到了人类大脑有两套分析机制:没头脑的“机制1”和爱自省的“机制2”,并且要用“机制2”做好...

网友评论

      本文标题:546. 【Lua】自省机制(Introspective Fac

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