2016-12-24 5 views
0

私はPythonスクリプトをデバッグしていましたが、結果に2番目のインデックスにあるtracebackオブジェクトが、sys.exc_info()関数によって返されました。しかし、私はtracebackオブジェクトに関連する情報をgoogleにしようとしましたが、どこでも標準的なpython libのtraceback moduleへのリンクがあります。その後、トレースバックオブジェクトにdir()を実行しようとしました。これは私に属性のリストを与えます。そのリストには、属性が以下を面白そう: -Pythonのトレースバックオブジェクト

1. tb_frame, 
2. tb_lasti, 
3. tb_lineno, 
4. tb_next 

私はtb_frameとtb_linenoについて知っているが、他の属性のどの残りは示して?

悪い英語について謝罪します。前もって感謝します。

+1

ドキュメントを読む:https://docs.python.org/3/library/inspect.html?highlight=tb_ – vaultah

+0

[こちら](https://docs.python.org/3/reference/datamodel) html?highlight = tb_)ページ – vaultah

答えて

1

@vaultahで指定されたdocpageで指定されているように、

これらのすべては、特別な読み取り専用の属性です。 1. tb_nextは、スタックトレース内の次のレベル(例外が発生したフレーム方向)です。次のレベルがない場合はNoneです。 2. tb_frameは、現在のレベルの実行フレームを指します。 3. tb_lineno例外が発生した行番号を指定します。 4. tb_lastiは、正確な命令を示します。

注: - 例外条項を除き、またはfinally節とのマッチングなしでtry文で発生した場合 トレースバックの行番号と最後の命令は、そのフレームのオブジェクトの行番号と異なる場合があります。