访问ipdb中的类成员

时间:2012-10-11 01:48:57

标签: python debugging python-2.7 ipython

也许这个问题看起来很简单,但我试图从ipdb中查看一些成员变量,我看不出如何。

示例:

class MyClass( object ):
    def __init__( self, p ):
        self.__p = p
        pass                   # <--- breakpoint here!

我确定p是正确的。在调试器中,我输入:

ipdb> (self.__p)

我收到以下错误消息:

* * * AttributeError:'MyClass'对象没有属性'__p'

似乎 self ,而不是调试器的实例

关于如何执行我的工作的任何想法?

我在Kubuntu 12.04 - 64位上的IPython 0.12.1上使用Python 2.7.3。

2 个答案:

答案 0 :(得分:1)

请参阅here了解原因,这是Pythons拥有“私有”变量的方式。

答案 1 :(得分:0)

为了让我们了解@ dom_beau的评论,我会将其作为答案重新发布。

ipdb 中访问“私人”类成员的方法是:

ipdb> (self._MyClass__p)