错误尝试通过ipdb获取实例的字符串表示形式

时间:2013-10-21 11:52:38

标签: python pdb

我有这堂课:

class Point(PointAbstract):
    """
    Class used to expand shapely.geometry.Point functionality
    """

    def __unicode__(self):
        return '%s, %s' % (self.x, self.y)

    def __repr__(self):
        return '%s, %s' % (self.x, self.y)

    def __str__(self):
        return '%s, %s' % (self.x, self.y)

当我尝试通过ipdb评估实例时,我得到:

> /home/...
    151         p = Point(float(each[4]), float(each[3]))
--> 152         for i, _each in enumerate(headers):
    153             if not _each in headers_to_ignore:

ipdb> p
*** SyntaxError: SyntaxError('unexpected EOF while parsing', ('<string>', 0, 0, ''))

我希望有类似的东西:

123.0, 321.0

我错过了什么?

1 个答案:

答案 0 :(得分:5)

p是用于打印值的pdb命令(print的缩写),Python期望该命令的参数。

解释为名称p。使用:

ipdb> p p

告诉p(rint)打印对象p,或者转义引用:

ipdb> !p