私は現在のスタックフレームをすべて取得しようとしており、各フレームの各フレームに対して何らかの検査をしていますf_globals
これは、私の場合例外がスローされていないことを除いて、モジュールがそれを行う方法と非常に似ています。 traceback.extract_stack()
はこれにアクセスできませんが、例外がスローされた場合はsys.exc_info()
のフレームが行います。 (それはNone
になるまで)現在のすべてのスタックフレームのf_globals属性にアクセスするにはどうすればいいですか
4
A
答えて
3
inspectモジュールの "stack"機能を使用してください。各フレームのオブジェクトにf_globals
を検査する
[frame, filename, line number, function name, frame sources, current line index in sources]
:
>>> import inspect
>>> inspect.stack()
[(<frame object at 0x02467FE0>, '<stdin>', 1, '<module>', None, None)]
この呼び出しは、各要素は(Python docsに従って)そのフレームに実行されているフレームと、余分な情報からなるタプルであるリストを、得られます:
>>> for frame_tuple in inspect.stack():
... print frame_tuple[0].f_globals.keys()
...
['frame_tuple', '__builtins__', 'inspect', '__package__', '__name__', 'readline', 'rlcompleter', '__doc__']
「スタック」機能は、実走行物事を設定する以外のコード、またはデバッグに使用されるように、しかし、遅いです。変数値やその他のイントロスペクションベースのコードを取得するなど、ランタイム操作のためにスタックを検査する必要がある場合は、現フレームを取得するのにinspect.currentframe()
を使用し、前のフレームへのリンクについて各フレームに.f_back
プロパティを使用してください。
sys._getframe
を使用しないでください。名前の先頭にあるアンダースコアは、一般向けではないためです。
2
current_frame = sys._getframe(0)
その後、スタックを歩いてf_back
属性を使用することができます。
これはCPython固有のものであり、実装の詳細とみなされていることに注意してください。
関連する問題
- 1. 現在のユーザーをModelFormの属性に設定するにはどうすればよいですか?
- 2. 現在の時間を含む属性を作成するにはどうすればよいですか?
- 3. getMyLocationAddressメソッドのonLocationChangedで私の現在の場所にアクセスするにはどうすればいいですか?
- 4. 現在のWebページにjsonファイルを保存してアクセスするにはどうすればいいですか?
- 5. djangoでリクエスト外の現在のユーザーにアクセスするにはどうすればいいですか
- 6. クラスにDataContract属性があるかどうかを調べるにはどうすればいいですか?
- 7. Wakandaサーバーでは、保存/検証中に属性の現在の値にアクセスするにはどうすればよいですか?
- 8. コードビハインドの要素の "class"属性値にアクセスするにはどうすればいいですか?
- 9. 現在のすべてのパラメータをパスに送信するにはどうすればよいですか?
- 10. アプリを開いた後の現在の日付にアクセスするにはどうすればよいですか?
- 11. 現在インストールされているwebdeploy/msdeployのバージョンを調べるにはどうすればよいですか?
- 12. JNI、現在のインスタンスをすべて一覧表示するにはどうすればいいですか?
- 13. オーチャードの現在のユーザーの役割にビューページからアクセスするにはどうすればよいですか?
- 14. 現在のAndroidタスクのすべてのアクティビティを終了するにはどうすればよいですか?
- 15. 特定の日付が現在の週に属しているかどうかを調べるにはどうすればよいでしょうか?
- 16. レンダリングメソッドの外でReact/Reduxの現在のユーザーにアクセスするにはどうすればよいですか?
- 17. Faceletsページのセッション属性にアクセスするにはどうすればいいですか
- 18. シンクセットのすべての属性を取得するにはどうすればよいですか?
- 19. XSL - 同じ属性のすべての値を追加するにはどうすればよいですか?
- 20. 現在のJUnitCoreにアクセスしてリスナーを追加するにはどうすればよいですか?
- 21. IdentityServer4を使用して現在のユーザーにアクセスするにはどうすればよいですか?
- 22. rails select文からすべての属性を表示するにはどうすればよいですか?
- 23. "show"中に現在のオブジェクトのIDにアクセスするにはどうすればよいですか?
- 24. Androidの開発:どのアプリケーションが現在インターネットにアクセスしているかを調べるにはどうすればいいですか?
- 25. 角2の指示文で現在の要素にアクセスするにはどうすればよいですか?
- 26. Javascriptでd3 svgチャートの現在のサイズプロパティにアクセスするにはどうすればよいですか?
- 27. OOPでのRubyと合成:simple_formで属性にアクセスするにはどうすればよいですか?
- 28. CoffeeScript内からHTML属性の値にアクセスするにはどうすればよいですか?
- 29. このJavascript/jQuery関数からHTML属性にアクセスするにはどうすればよいですか?
- 30. ユーザー入力からクラスオブジェクトとその属性にアクセスするにはどうすればよいですか?