gpython icon indicating copy to clipboard operation
gpython copied to clipboard

How to get `globals()` inside Go bounded method?

Open reyoung opened this issue 3 years ago • 0 comments

Simple description

I cannot find a way to access globals() within a bounded method in GoLang.

I expose a type into module, like moduleImpl.Globals["Foo"] = FooType, and add methods to FooType by FooType.Globals["bar"] = MustNewMethod(..., someGoMethod, ...).

I cannot access module's global variables inside someGoMethod.

Why I need this feature

I just attach different zap.Logger to multiple py.Contexts. I attach logger as a module's global variable, by using

ctx.GetModule("name").Globals["logger"] = &pyLoggerObject{logger}

but I cannot find a way to use this logger inside bounded methods.


I found I can create a py.Type and attach the type to module global dynamically. I can somehow read module globals by this trick. But Is there a elegant way to archive that?

m = ctx.GetModule("module")
m.Globals["Foo"] = NewFooType(m)

reyoung avatar Dec 13 '22 08:12 reyoung