如何在 vscode 中调试 python 时打印对象的值?

How to print a object's value while debugging python in vscode?

我应该实现什么功能(如果有的话),以便 VScode(或真正的 python)可以在 VScode 变量窗格中获取用户定义对象的值,同时调试?

在此 image 中,您可以看到 arr 显示为 [1, 2, 3, 4]。如何让变量 node 显示其值 (1) 而不是 <__main__.ListNode object at 0x7f4a19eafb20>

由于 node 是一个对象,其对应的 __repr__ 方法默认返回该值。如果您想改为查看实际节点 value,则可以将 __repr__ 方法添加到 ListNode class.

VScode 在显示变量值时使用 __repr__ 方法。这是添加了 __repr__ 方法的示例 ListNode class -

class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None

    def __repr__(self):
        return str(self.val)


node = ListNode(1)
print(node)

如果你在 VScode 调试模式下 运行 你会看到预期的节点值而不是 <__main__.ListNode object at 0x101bed2b0>

没有__repr__方法-

__repr__方法-