17

PDB(およびその他のPythonデバッガー)には、入力するだけで現在の変数の値を表示する簡単な方法があります。ただし、戻り値を中間変数に格納しないライブラリを使用する場合があります。

関数の例を次に示します。

def do_stuff(*args, **kwds):
     return f(*args, **kwds)

fから戻った後、戻り値を確認するにはどうすればよいですか?ライブラリをダウンロードした後、中間を作成するためにライブラリを書き直すことができます。

def do_stuff(*args, **kwds):
     r = f(*args, **kwds)
     return r

しかし、もっと良い方法があるはずです。

4

3 に答える 3

21

__return__非表示のローカル変数を調べることができます。

正確な名前を忘れた場合は、次のように調べます。

(Pdb) sorted(locals().keys())
['__return__', 'xyz', ...]

編集:デバッグの例に関連する後の回答__return__

于 2013-09-07T13:59:38.793 に答える
6

pdbでは、関数が返すときに->'value'、戻り値の表現とともに行の最後にaが追加されます。

例えば:

(Pdb) s
--Return--
> test.py(12)do_stuff()->'f'
-> return result
(Pdb) q

do_stuff()返されることを意味します'f'

于 2012-06-05T18:15:26.703 に答える
1

もっと説明してもらえますか?

  • デバッガーとは、ロガーを使用しているという意味ですか?IDEをステップスルーしていますか?
  • 「戻り値を見る」とはどういう意味ですか?印刷したいだけなら...

    def do_stuff(*args, **kwds):
        result = f(*args, **kwds)
        print result
        return result
    
于 2012-06-05T17:52:40.123 に答える