Python中使用赋值时的条件断点行为

2024-09-21 05:23:55 发布

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

最近我调试了一些代码,无意中设置了一个条件断点,如下所示:

my_var = some_val

事实上,我想

my_var == some_val

很明显,这不是我想做的事情,但它让我对调试时的行为感到好奇(以及在引擎盖下发生的其他事情)。该语句是否已执行和存储?也就是说,如果第一行用作条件,那么每次遇到该行时my_var实际上会发生some_val

我注意到了这一点,因为我总是碰到那个断点,所以“条件”总是计算为True

我只是好奇地想知道那层下面发生了什么


Tags: 代码truevarmyvalsome语句条件
1条回答
网友
1楼 · 发布于 2024-09-21 05:23:55

已对其进行评估,但未存储。原因是因为您可以覆盖__eq__方法,x == y是一个函数调用

简短示例:

class A:
    def __eq__(self, other):
        print "Evaluated !"

a = A()
a == 1
# it prints "Evaluated !"

相关问题 更多 >

    热门问题