Pythonの実験に興味があります。frame.f_locals
とを使用してローカル変数とグローバル変数を検査してフレームに挿入できることはわかっていますがframe.f_globals
、現在、完全な呼び出しスタックを作成したいと思っています。
スタック情報を変更することを妨げているのは、Pythonではスタック情報を変更できないという事実です。
スタックの巻き上げをシミュレートするために、使用しているPythonモジュールをプログラムで変換することを実際に検討しました。しかし、クライアントコードで、、を使用するとコードが簡単に壊れてしまうため、これはひどい解決策であることに気づいif
てwhile
いwith
ますtry
。
私はまたframe.f_back
、無駄に操作することを見てきました。読み取り専用です。
>>> import sys
...
... frm = sys._getframe()
...
... frm.f_back = None
Traceback (most recent call last):
File "<pyshell#4>", line 5, in <module>
frm.f_back = None
TypeError: readonly attribute
私がやろうとしていること
実験として、私はfork()
ネットワーク全体に実装しようとしています。
スタックレスPythonが私が望むものを持っているかもしれないことを私は知っていますが、それでもframe.f_back
属性を変更することは不可能です。