あらびきな方法でbuiltinsを拡張する
こんにちわ。あらびきプログラマーことmopemopeです。
builtinsをあらびきな方法で拡張する方法を紹介しておきます
拡張モジュールを作っていじる。
PyThreadState *tstate = PyThreadState_GET(); PyInterpreterState *interp = tstate->interp; // builtin dict PyObject *dict = interp->builtins; PyDict_SetItemString(dict, "test", PyString_FromString("test!!!!!!!"));
importする
importした時点でbuiltinsが拡張され、その後ずっと使えるようになる。
起動時に拡張したいんだけど
起動時にimportされるモジュール内で拡張モジュールを読み込ませてしまう。
起動時にimportされるモジュールは
python -v
でわかるので仕込めそうなところで仕込む。
(とはいえきついかな)
楽なのはsite.py周りでimportしてしまう方法。
だがフラグで読み込まなくもできるので注意。