VScode+python

在使用VScode 1.30.2版本调试Python 3.7.1代码时遇到一个问题,当断点设在特定位置,debug输出与预期不符,而移除断点或设置靠后的位置时输出正常。该问题在Pycharm环境下未复现,问题原因待查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现VScode在调试python的一个小问题

VScode版本是1.30.2,python版本是3.7.1

class Animal(object):
	 run = True
class Dog(Animal):
    fly = False
    def __init__(self,age):
        self.age = age   
    def __getattr__(self, name):
        print("calling __getattr__\n")
        if name == 'adult':
            return True if self.age >= 2 else False
        else:
            raise AttributeError
    def __setattr__(self, name, value):
        print ("calling __setattr__")
        super(Dog, self).__setattr__(name, value)
    def __delattr__(self, name):
        print ("calling __delattr__")
        super(Dog, self).__delattr__(name)

# 创建实例对象dog
dog = Dog(1)
# 检查一下dog和Dog的__dict__
print(dog.__dict__)         
print(Dog.__dict__)         
print(dog.age)
# 获取dog的adult属性。
# 由于__getattribute__没有找到相应的属性,所以调用__getattr__。
print(dog.adult)
# 调用一个不存在的属性name,__getattr__捕获AttributeError错误
# print(dog.name)

当断点设置在下图所示位置的时候

debug输出
就是有两个输出
而当不设置断点的时候,或者设置断点靠后的时候
在这里插入图片描述
debug输出
有两个输出
同样的代码,在pycharm环境测试下,就没有这个问题。
暂时不清楚问题出在哪里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值