Python 3.x 类的deepcopy实现\uuu getattr的调试问题__

Python 3.x 类的deepcopy实现\uuu getattr的调试问题__,python-3.x,deep-copy,getattr,enum-flags,debugbreak,Python 3.x,Deep Copy,Getattr,Enum Flags,Debugbreak,我有一个类,它有一个类型为enum.Flag的实例变量。它实现\uuuu getattr\uuuu,以便 我可以返回由名称指定的标志的布尔状态 代码在未调试的情况下运行时工作正常,产生了预期的输出 但是,当我使用Visual Studio调试器(VS 2019,16.7.4,Python 3.6,64位)运行它时,它总是在\uuuu getattr\uuuu方法中停止,我需要继续100次,直到可以正常继续。我没有设置断点 我在空闲状态下测试了同样的代码。调试期间,IDLE不会在getattr

我有一个类,它有一个类型为enum.Flag的实例变量。它实现
\uuuu getattr\uuuu
,以便 我可以返回由名称指定的标志的布尔状态

代码在未调试的情况下运行时工作正常,产生了预期的输出

但是,当我使用Visual Studio调试器(VS 2019,16.7.4,Python 3.6,64位)运行它时,它总是在
\uuuu getattr\uuuu
方法中停止,我需要继续100次,直到可以正常继续。我没有设置断点

我在空闲状态下测试了同样的代码。调试期间,IDLE不会在getattr中停止

如何消除干扰调试会话的那些恼人的误报

from enum import Flag, auto
from copy import deepcopy

class MyFlags(Flag):
    FOO = auto()
    BAR = auto()
    BAZ = auto()

class Features:
    __slots__ = ('_features', )
    
    def __init__(self, bitmask):
        self._features = bitmask

    @property
    def bitmask(self):
        return self._features

    def __getattr__(self, attr):
        try:
            return bool(MyFlags[attr].value & self._features)

        except:
            raise AttributeError(attr)

f = Features(5)

print(f.bitmask)
print(f.FOO)
print(f.BAR)
print(f.BAZ)

f = Features(3)

print(f.bitmask)
print(f.FOO)
print(f.BAR)
print(f.BAZ)

g = deepcopy(f)

print(f.bitmask)
print(f.FOO)
print(f.BAR)
print(f.BAZ)

VSD屏幕截图显示了有关“触发异常”的信息,并为您提供了“复制详细信息”的功能。请在您的帖子中提供它们,除非它们看起来完全无关(在这种情况下,请说明)。抱歉,详细信息没有提供更多的见解:
Nachricht=\uuuuuu deepcopy\uuuuquelle=path\deepcopy\u test.py Stapelüberwachung:File“path\deepcopy\u test.py”,第34行,在\uuuu getattr\uuuuuuuuuuu提高属性错误(attr)文件中“path\deepcopy_test.py”,第50行,g=deepcopy(f)
在调试模式下,VSD似乎在任何异常情况下都会停止。在我的测试中,您的代码只触发了3次-其余97次上的消息是什么?DebugBreak被触发了3次,这是简化示例的结果。在我的真实代码中,它被触发的次数更多。它在“deepcopy”、“getstate”、“SetTA”上被触发te',显然是从几个deepcopy操作中执行的。因此,我可以说这3个案例是唯一相关的案例,因为许多其他中断都来自同一来源。根据文档(仅发现一个德国案例不适合粘贴在此处),在异常时停止是VS调试器的要点之一。您还期望出现什么其他行为,为什么?