Ответ 1
Вы можете посмотреть скрытую локальную переменную __return__
.
Если я забуду это точное имя, я исследую его:
(Pdb) sorted(locals().keys())
['__return__', 'xyz', ...]
РЕДАКТИРОВАТЬ. Мой более поздний ответ с примером для __return__
PDB (и другие отладчики Python) имеют простой способ просмотра значения любой текущей переменной, просто введя ее. Однако иногда я работаю с библиотеками, которые не сохраняют возвращаемые значения в промежуточных переменных.
Здесь примерная функция:
def do_stuff(*args, **kwds):
return f(*args, **kwds)
После возврата из f, как я могу увидеть возвращаемое значение? Я могу переписать библиотеки после того, как я загрузил их, чтобы иметь промежуточное звено:
def do_stuff(*args, **kwds):
r = f(*args, **kwds)
return r
но кажется, что должен быть лучший способ.
Вы можете посмотреть скрытую локальную переменную __return__
.
Если я забуду это точное имя, я исследую его:
(Pdb) sorted(locals().keys())
['__return__', 'xyz', ...]
РЕДАКТИРОВАТЬ. Мой более поздний ответ с примером для __return__
В pdb, когда функция возвращает, ->'value'
добавляется в конце строки с представлением возвращаемого значения.
Например:
(Pdb) s
--Return--
> test.py(12)do_stuff()->'f'
-> return result
(Pdb) q
означает do_stuff()
возвращенный 'f'
Можете ли вы объяснить больше?
Что вы подразумеваете под "видеть возвращаемое значение"? Если вы просто хотите его распечатать...
def do_stuff(*args, **kwds):
result = f(*args, **kwds)
print result
return result