我正在尝试为一组 C++ 类构建一组 Lua 绑定,但一直在玩弄 Python,看看我是否能得到更好的结果。在这两种语言中,绑定似乎都有效,但是,当我初始化包含其他类成员的类的实例时,似乎不能保证这些数据成员被初始化。
例如,上课:
class MyClass : public ParentClass // (Obviously) not a real class
{
public:
SomeClass sc;
OtherClass oc;
};//Note that none of my classes have a constructor or destructor; this is by design.
当我为这样的类生成绑定时,我可以执行如下语句:
var = module_name.MyClass()
print(var.sc.x, var.sc.y)
我将预期的垃圾值打印到屏幕上。但是,如果我尝试打印有关 OtherClass 的实例的任何内容,很明显它已“被排除”——在 Lua 中它根本没有元表,而在 Python 中执行 dir(var.oc) 只提供默认函数。但是,如果我这样做:
var.oc = module_name.OtherClass()
oc metatable / dir(oc) 调用是我所希望的,它可以按预期处理。
任何人都可以提供任何见解,为什么只有 - 一些 - 成员数据被初始化?
谢谢!