Как определить новую функцию в pdb

Почему я не могу определить новые функции при запуске pdb ?

Например, возьмите myscript.py:

 #!/gpfs0/export/opt/anaconda-2.3.0/bin/python print "Hello World" print "I see you" 

Если я запустил python -m pdb myscript.py и попытаюсь в интерактивном режиме определить новую функцию:

 def foo(): 

Я получаю сообщение об ошибке:

 *** SyntaxError: unexpected EOF while parsing (<stdin>, line 1) 

Почему это?

2 Solutions collect form web for “Как определить новую функцию в pdb”

Вы можете определить свою функцию в одной строке с использованием ; вместо отступов, вот так:

 (Pdb) def foo(): print 'Hello world'; print 'I see you' (Pdb) foo() Hello world I see you 

Я не думаю, что он поддерживает многострочный ввод. Вы можете обходным путем путем создания интерактивного сеанса из pdb. Как только вы закончите в интерактивном сеансе, выйдите из него с помощью Ctrl + D.

 >>> import pdb >>> pdb.set_trace() (Pdb) !import code; code.interact(local=vars()) (InteractiveConsole) In : def foo(): ...: print 'hello in pdb' ...: In : # use ctrl+d here to return to pdb shell... (Pdb) foo() hello in pdb 
  • Как Python 2.7 сравнивает элементы внутри списка
  • Ошибка сегментации при одновременном вызове функции C с API Python C
  • Как ссылаться на объект-создатель в Python?
  • Синтаксис Python 'If not'
  • Как укоротить (разрешить) URL-адрес, используя python, когда конечный URL-адрес - https?
  • Множественный выбор Kivy с флажками
  • Получить общее количество столбцов Pandas
  • Извлечение одного текста из ячейки таблицы, содержащей несколько текстов. Robot Framework
  • Невозможно изменить Path of cmd в Python 2.7
  • windows scrapyd-deploy не распознается
  • Опять же: UnicodeEncodeError: ascii codec не может кодировать
  • Python - лучший язык программирования в мире.