获取在Lua

时间:2015-09-29 08:48:48

标签: c++ lua luabind

可以使用Luabind向Lua公开的OO系统创建Lua类:

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()(参见https://github.com/luabind/luabind/blob/master/src/class_info.cpp#L33

但是这个函数在退出之前似乎不会迭代多次。有谁知道luabind使用的对象格式?或者我如何提取这些属性?

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

0 个答案:

没有答案