Python有dir(obj)和help(obj),在Lua中是否有等价物?

时间:2012-04-22 22:30:11

标签: python lua introspection

任何不熟悉Python中这两种方法的人......

dir返回特定对象的方法/属性列表。

help会返回一个对象doc strings

2 个答案:

答案 0 :(得分:3)

Lua没有“doc strings”的概念。

所有Lua对象都是表(或者用户数据,但是你不能从Lua代码中检查用户数据。不是在Lua 5.1中;在5.2中,如果创建userdata的用户想要你这样做,你可以这样做)。因此,您可以使用现有的表方法迭代表的内容:

for k, v in pairs(obj) do
  --Do stuff with k(ey) and v(alue)
end

请注意,这将调用metamethods,因此表的 true 内容未知。然后,如果创建该对象的人希望您拥有真实内容,他就不会使用元方法保护它们。

答案 1 :(得分:0)

让我们开心:

function dir(obj)
    for k, v in pairs(obj) do print(k) end
end

这是一个类似的蟒蛇" dir" Lua的功能。