Doušek vazby pro Python / Lua neinicializujete členů data správně

hlasů
0

Snažím se vytvořit sadu Lua vázání pro kolekci C ++ tříd, ale byly koketování s Python, jestli bych dosáhnout lepších výsledků. V každém jazyce vázání zdá k práci, ale když jsem se inicializovat instanci třídy, která obsahuje členy jiných tříd, tyto údaje členů se nezdají být zaručeno, že bude inicializovat.

Například, vzít třídu:

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.

Když jsem vytvářet vazby pro třídu, jako je tento, jsem schopen vykonat příkazy jako:

var = module_name.MyClass()
print(var.sc.x, var.sc.y)

A já si očekávané nevyžádané hodnoty vytištěné na obrazovku. Nicméně, pokud se pokusíte vytisknout něco o instanci OtherClass, je zřejmé, že to je „zamáčkl“ - v Lua nemá metatable vůbec a v Pythonu dělá dir (var.oc) poskytuje pouze výchozí funkce. Nicméně, když jsem pak dělat:

var.oc = module_name.OtherClass()

Přepínač / r (oc) volání oc metatable jsou to, co jsem očekávala, a to může být zacházeno jako se očekávalo.

Může někdo nabídnout žádný vhled do proč -some- uživatelských dat jsou inicializovány pouze?

Dík!

Položena 27/05/2009 v 16:55
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Ukázalo se, že tento problém byl ve spojení s jiným problémem jsem měl. Viz toto vlákno pro rozlišení.

Odpovězeno 18/06/2009 v 18:46
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more