This commit is contained in:
blueloveTH 2023-04-27 20:08:28 +08:00
parent 2689e16bb6
commit b73029247b
2 changed files with 10 additions and 1 deletions

View File

@ -439,7 +439,7 @@ __NEXT_STEP:;
source = it->second; source = it->second;
_lazy_modules.erase(it); _lazy_modules.erase(it);
} }
CodeObject_ code = compile(source, name.sv(), EXEC_MODE); CodeObject_ code = compile(source, Str(name.sv())+".py", EXEC_MODE);
PyObject* new_mod = new_module(name); PyObject* new_mod = new_module(name);
_exec(code, new_mod); _exec(code, new_mod);
new_mod->attr()._try_perfect_rehash(); new_mod->attr()._try_perfect_rehash();

View File

@ -190,6 +190,15 @@ inline void init_builtins(VM* _vm) {
return VAR(ss.str()); return VAR(ss.str());
}); });
_vm->bind_method<1>("object", "__getattribute__", [](VM* vm, ArgsView args) {
PyObject* self = args[0];
if(is_tagged(self) || !self->is_attr_valid()) vm->TypeError("object has no attribute");
StrName name = CAST(Str&, args[1]);
PyObject* ret = self->attr().try_get(name);
if(ret == nullptr) vm->AttributeError(name.sv());
return ret;
});
_vm->bind_method<1>("object", "__eq__", CPP_LAMBDA(VAR(args[0] == args[1]))); _vm->bind_method<1>("object", "__eq__", CPP_LAMBDA(VAR(args[0] == args[1])));
_vm->bind_method<1>("object", "__ne__", CPP_LAMBDA(VAR(args[0] != args[1]))); _vm->bind_method<1>("object", "__ne__", CPP_LAMBDA(VAR(args[0] != args[1])));