如何在 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__
方法-
我应该实现什么功能(如果有的话),以便 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__
方法-