この機能がデフォルトでサポートされていないことはわかっています。私が試みているのは、実用的なアプリケーションがほとんどなく、退屈と好奇心の結果としての精神的なマスターベーションの完全な実践であるハックな回避策です。 . そうは言っても、私は次のことをやろうとしています:
次の Python コードに基づいて、
with BuildFile('mybuild.build') as buildfile:
objdir = 'obj'
mybuild.build
次の内容のファイルを生成したいと思います。
objdir = obj
理想的には、作成時点で変数名を関連付けたいので、の直後にブレークポイントを設定するobjdir = 'obj'
と、次のことができるようになります。
>>> print repr(objdir)
'objdir = obj'
ただし、構文から推測された型をオーバーライドする方法がないため、組み込み機能ではこれは不可能です。基礎となる構造体のorフィールドにモンキー パッチを適用する (その後、終了時にそのオーバーライドを元に戻す) ためBuildFile.__enter__
に使用する方法で回避策を一緒にハックすることになるかもしれませんが、簡単にするために、変数名を関連付けていないと仮定しましょう。メソッドにたどり着くまで。ctypes
tp_new
tp_dict
PyTypeObject
BuildFile.__exit__
私が疑問に思っているのは、次のことです。
実行を停止し、ローカル変数が宣言されたフレームに戻り、変数に関連付けられたローカル名を取得する組み込みの Python 機能はありますか?