获取在Lua中创建的luabind类的属性列表

Lua classes可以使用Luabind公开给Lua的OO系统来创建:

http://www.rasterbar.com/products/luabind/docs.html#defining-classes-in-lua

class 'MyClass'
function MyClass:__init()
    self.a1 = true
    self.a2 = "MyClass"
end

创建了上述类之后,如果我想要在Lua中添加属性(即a1和a2),我可以执行以下操作:

obj = MyClass()

info = class_info(obj)
print("Methods:")
for k,v in pairs(info.methods) do
    print(k .. ': ' .. tostring(v))
end

print("Attributes:")
for k,v in pairs(info.attributes) do
    print(k .. ': ' .. tostring(v))
end

但我只看到了__init而没有属性。有没有办法获取属性a1和a2?

我通过调试(get_class_info())了解了Luabind库。但是在退出之前,该函数似乎只迭代一次。有谁知道Luabind使用的对象格式?或如何提取这些属性?

注意:如果我在C++中创建一个类并通过Luabind公开它,那么我将看到我从C++中公开的任何属性。问题在于Lua中的属性。

点赞