1

也许这个问题看起来很简单,但我试图从 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。

4

2 回答 2

2

原因见这里,这是 Python 拥有“私有”变量的方式。

于 2012-10-11T01:59:37.897 回答
0

为了让@dom_beau 的评论可见,我将其评论重新发布为答案。

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

ipdb> (self._MyClass__p)
于 2017-03-23T09:40:04.907 回答