PyCharm和调试私有属性

2024-06-17 10:47:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用PyCharm社区版3.4。在

我已将self.__a添加到手表中。在

这是我的例子:

class Box:
    def __init__(self, a, b, c):
        self.__a = a
        self._b  = b
        self.c   = c
        d = 0 #Breakpoint.


a = Box(1, 2, 3)

所以,我开始调试并在断点处停止。self.__a手表显示{AttributeError}'Box' object has no attribute 'a'.

我按Alt+F8并计算self.__a = a。结果是None。在

然后我计算self.__a,结果是1。在

我的手表self.__a仍然显示{AttributeError}'Box' object has no attribute 'a'。我删除它。然后我添加另一个手表self.__a。它显示1。在

你能解释一下这是怎么回事吗?在


Tags: noselfboxobjectinitdefattribute社区
1条回答
网友
1楼 · 发布于 2024-06-17 10:47:37

这是因为box没有__a

它的名字被弄错了。。。在

另请参见:Name_mangling#Python

它变成了

Box._Box__a

如果你把它换成手表

^{pr2}$

它会显示正确的值

但也应该在调试面板的中间显示变量)

相关问题 更多 >