我知道有上千篇关于Python调试的文章,但是我找不到我想要的……一个可视化的调试器。例如:
one@localhost ~ $ cat duh.py
import pdb
class Coordinate(object):
pdb.set_trace()
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return "Coord: " + str(self.__dict__)
def add(a, b):
return Coordinate(a.x + b.x, a.y + b.y)
def sub(a, b):
return Coordinate(a.x - b.x, a.y - b.y)
one = Coordinate(100,200)
two = Coordinate(300,200)
add(one, two)
我想看看实际使用的值。我不想看到def __init__(self, x, y):
而是想看到def __init__(self, 100, 200):
> /home/one/duh.py(14)<module>()
-> one = Coordinate(100,200)
(Pdb) s
--Call--
> /home/one/duh.py(4)__init__()
-> def __init__(self, x, y):
(Pdb) s
> /home/one/duh.py(5)__init__()
-> self.x = x
(Pdb) s
> /home/one/duh.py(6)__init__()
-> self.y = y
(Pdb) s
--Return--
> /home/one/duh.py(6)__init__()->None
-> self.y = y
我完全不习惯对解释器内部发生的事情视而不见,我真的很想看到内部发生的事情,就像其他脚本语言调试器一样(比如JavaScript步骤)。
pdb调试看起来不好玩。我明白你为什么不喜欢。
幸运的是,这里有一些可视化的Python调试器。我最常使用的两种是商业产品,但它们都很值这个价钱。它们是Komodo IDE和IntelliJ IDEA。这些是除Python之外支持许多其他语言的多语言ide。还有一个仅限Python的IDEA版本,名为PyCharm。
还有一个很棒的免费选项,Winpdb。它很容易使用:一旦安装并打开它,使用File/Launch并输入
.py
文件的完整路径,然后就可以开始调试了。这些产品都是多平台的,但是如果你在Windows上,另一个免费的选择是微软的Python Tools for Visual Studio。您可以将其安装到商用Visual Studio 2015或免费的visualstudio2015社区版中。
为了给你一个想法,这里是你的代码从Winpdb,Komodo和idea截图。我进入了
__init__
函数中的每个:如果你不喜欢我使用的代码字体,别担心,那只是我的个人设置。当然,在正常使用中,屏幕并没有那么狭窄;我把它做得很小,以适应屏幕截图。
我强烈推荐这些可视化调试器中的任何一个——能够用一次击键遍历代码并观察变量的变化是非常棒的。
当前的pdb.set_trace()调用是在定义类时进行的,而不是在调用init之后。如果将pdb.set_trace()调用移到init中
然后在pdb中输入
print x, y
并获取值:我从2011年1月开始使用WingWare的WingIDE(我有4.x Pro版本)。我只用它来调试,它对我很有帮助——不可否认,我不是一个超级用户。我设置断点,逐行逐级等
相关问题 更多 >
编程相关推荐