Я беру класс с открытым исходным кодом. Мне дают doctests и CLI, чтобы проверить мой код и посмотреть, прошел ли он, однако, как я могу визуализировать мой код, чтобы увидеть, что происходит? Например, мне трудно понять, как работает for loop
, и я хотел бы посмотреть, какой список назначается в каждой рекурсии.
Файл имеет много функций, поэтому запуск -m doctest
не идеален и также не показывает исполнение. Когда я запускаю режим отладки в коде и устанавливаю точку останова на функцию, она никогда не входит в функцию. Я предполагаю, что это потому, что в файле, который я никогда не называю nut_finder()
, но я не хочу начинать добавлять к исходному коду, так как это противоречит цели doctest. Я также могу запустить python в интерактивном режиме, но это также не покажет мне, как выполняется код.
Единственное решение, которое я нашел, - это использование инструмента , который визуализирует код, Тем не менее, это требует от меня, чтобы вручную скопировать и вставить материал. Это также станет проблемой для больших приложений и многофайловых приложений. Короче говоря, как я могу узнать, как правильно отлаживать мой код.
# lab05.py
def nut_finder(t):
"""Returns True if t contains a node with the value 'nut' and
False otherwise.
>>> scrat = tree('nut')
>>> nut_finder(scrat)
True
>>> sproul = tree('roots', [tree('branch1', [tree('leaf'), tree('nut')]), tree('branch2')])
>>> nut_finder(sproul)
True
>>> numbers = tree(1, [tree(2), tree(3, [tree(4), tree(5)]), tree(6, [tree(7)])])
>>> nut_finder(numbers)
False
>>> t = tree(1, [tree('nut',[tree('not nut')])])
>>> nut_finder(t)
True
"""
if label(t) == 'nut':
return True
for b in branches(t):
if nut_finder(b):
return True
return False