go-python / go-python/gpython

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

オープン
#211 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Go
スター
1k
フォーク
105
PR マージ指標
30日以内にマージされた PR はありません

説明

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。