Lom*_*rur 5 python debugging pycharm
我想str在调试器中查看 的子类的类属性。
请参阅图片 - 我想要在旁边有下拉箭头a(这是一个POSString对象)。换句话说,在 Pycharm 调试器中,我希望能够选择双击并查看带有 value 的a属性,就像对象一样。bar"HELLO"foo
这在 PyCharm 中可能吗?如果可以,如何实现?
两个类:
class Foo:
bar = "HELLO"
class POSString(str):
bar = "HELLO"
def __init__(self, pos="", *args, **kwargs):
super().__init__(*args, **kwargs)
self.pos = pos
def __hash__(self):
return hash((str(self), self.pos))
def __eq__(self, other):
return super().__eq__(other) and self.pos == other.pos
Run Code Online (Sandbox Code Playgroud)
以及我如何创建我的两个对象:
foo = Foo()
a = POSString("banana")
Run Code Online (Sandbox Code Playgroud)
我正在使用Python 3.7.1。
PyCharm:
PyCharm 2018.2.5 (Professional Edition)
Build #PY-182.5107.22, built on November 13, 2018
JRE: 1.8.0_152-release-1248-b22 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-43-generic
Run Code Online (Sandbox Code Playgroud)
PyCharm 目前没有设置来配置调试工具窗口的变量选项卡中显示该详细信息。IDE 根据对象的类型自动做出大部分显示决策。当前唯一可用的选项是使用设置在单个变量内对值进行排序File > Settings > Build, Execution, Deployment > Debugger > Data Views > Sort values alphabetically。(有关更详细的解释,请参阅这篇文章)。
这对于调试来说可能不方便,class问题中的示例显示得与字符串完全相同,因为该类继承自 string。这是 IDE 的决定,目前无法更改它(除了向JetBrains发布功能请求之外)。
替代方法是在“变量”选项卡中设置“监视”或使用控制台。另一个更不方便的选择是将类本身更改为不从字符串继承(在这种情况下,它将像常规类一样显示),但是这可能会破坏代码中的任意数量的功能,因此所获得的调试便利性可能会被造成的不便。