/examples/myfun">Отладка. lst.append(ord(i)) return lst. gt; lst = [] (Pdb) n. gt; /examples/myfun.py(6)fun() -> lst.append(ord(i)). usr/bin/python. File myfun.py. gt;     lst.append(ord(i)). Pdb) p vars(). i': 'A', 's': 'ABCDE', 'lst': []} (Pdb) n. Pdb) p vars(). i': 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Отладка. lst.append(ord(i)) return lst. gt; lst = [] (Pdb) n. gt; /examples/myfun.py(6)fun() -> lst.append(ord(i)). usr/bin/python. File myfun.py. gt;     lst.append(ord(i)). Pdb) p vars(). i': 'A', 's': 'ABCDE', 'lst': []} (Pdb) n. Pdb) p vars(). i':

Поиск

Отладка

 

В интерпретаторе языкаPythonзаложены возможности отладки программ,а в стандартной поставке имеется простейший отладчик-pdb.Следующий пример показывает программу,которая подвергается отладке,и типичную сессию отладки:

 

# File myfun.py def fun(s):

 

lst = [] for i in s:

lst.append(ord(i)) return lst

 

 

Так может выглядеть типичный процесс отладки:

 

>>> import pdb, myfun

>>> pdb.runcall(myfun.fun, "ABCDE") > /examples/myfun.py(4)fun()

-> lst = [] (Pdb) n

> /examples/myfun.py(5)fun() -> for i in s:

(Pdb) n

> /examples/myfun.py(6)fun() -> lst.append(ord(i))

(Pdb) l

1 #!/usr/bin/python

2 # File myfun.py

3 def fun(s):

4 lst = []

5 for i in s:

6 ->     lst.append(ord(i))

 

7 return lst [EOF]

 

(Pdb) p lst []

 

(Pdb) p vars()

{'i': 'A', 's': 'ABCDE', 'lst': []} (Pdb) n

 

> /examples/myfun.py(5)fun() -> for i in s:

(Pdb) p vars()

{'i': 'A', 's': 'ABCDE', 'lst': [65]} (Pdb) n


 


> /examples/myfun.py(6)fun() -> lst.append(ord(i))

(Pdb) n

> /examples/myfun.py(5)fun() -> for i in s:

(Pdb) p vars()

{'i': 'B', 's': 'ABCDE', 'lst': [65, 66]} (Pdb) r

- Return -

> /examples/myfun.py(7)fun()->[65, 66, 67, 68, 69] -> return lst

(Pdb) n

[65, 66, 67, 68, 69]

>>>

 

Интерактивный отладчик вызывается функцией pdb.runcall() и на его приглашение (Pdb) следует вводить команды.В данном примере сессии отладки были использованы некоторые из следующих команд:l(печать фрагмент трассируемого кода),n(выполнить все до следующей строки),s(сделать следующий шаг,возможно,углубившись в вызов метода или функции),p(печать значения),r(выполнить все до возврата из текущей функции).

 

Разумеется,некоторые интерактивные оболочки разработчика дляPythonпредоставляют функции отладчика.Кроме того,отладку достаточно легко организовать,поставив в ключевых местах программы,операторы print для вывода интересующих параметров.Обычно этого достаточно,чтобы локализовать проблему.ВCGI-сценариях можно использовать модуль cgitb,о котором говорилось в одной из предыдущих лекций.

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 53; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.)