go-python / go-python/gpython

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

Aperta
#211 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Go
Stelle
1k
Fork
105
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## 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.Context`s. 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)
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.