go-python / go-python/gpython

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

Abierto
#211 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Go
Estrellas
1k
Forks
105
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

## 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)
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.