Отладка кода в интерпретаторе Python

Мне нравится тестирование функций в интерпретаторе Python . Можно ли отлаживать функцию в интерпретаторе Python, когда я хочу увидеть больше, чем возвращаемое значение и побочный эффект?

Если да, можете ли вы показать основные операции отладчика ( запуск функции с помощью аргументов, установка точки останова, следующий шаг, переход на, просмотр переменной )? Если нет, как бы вы отлаживали функцию по-другому?

Дело в том, что я хочу отлаживать только определенную функцию, которая будет снабжаться аргументами. Я не хочу отлаживать код всего модуля.

Спасибо за совет

    Если вы хотите отлаживать определенную функцию, вы можете использовать это –

     >>> import pdb >>> import yourmodule >>> pdb.run('yourmodule.foo()') 

    над командной строкой. pdb.set_trace() следует добавить в вашу функцию, чтобы прорваться туда.

    Более подробную информацию о pdb можно посмотреть здесь – http://docs.python.org/library/pdb.html

    См. Модуль pdb. Вставить в код:

     import pdb pdb.set_trace() 

    … делает точку останова.

    Код для отладки не нужно изменять, чтобы включить pdb.set_trace() . Этот вызов можно сделать непосредственно в интерпретаторе непосредственно перед отладкой кода:

     >>> import pdb >>> pdb.set_trace(); <code-to-debug> 

    Например, данный test_script.py со следующим кодом:

     def some_func(text): print 'Given text is {}'.format(repr(text)) for index,char in enumerate(text): print ' '*index, char 

    сеанс интерпретатора для отладки some_func с помощью команд отладчика step- some_func ( s ), next ( n ) и continue ( c ) будет выглядеть так:

     >>> import pdb >>> import test_script >>> pdb.set_trace(); test_script.some_func('hello') --Call-- > c:\src\test_script.py(1)some_func() -> def some_func(text): (Pdb) s > c:\src\test_script.py(2)some_func() -> print 'Given text is {}'.format(repr(text)) (Pdb) n Given text is 'hello' > c:\src\test_script.py(3)some_func() -> for index,char in enumerate(text): (Pdb) c h e l l o >>> 

    Дополнительную информацию об использовании отладчика см. В документах модуля pdb : http://docs.python.org/library/pdb.html.

    Кроме того, при использовании отладчика команда help предоставляет хороший список команд, а help <command> предоставляет помощь, специфичную для данной команды.