python pdb查看变量值_Python变量在pdb和print语句中的评估方式不同

我在python程序中使用线程,最近发现一个问题,在这个问题中,float没有被正确解释,并且每当我打印出pdb或日志记录语句时,大部分时间都显示正确。

奇怪的是,在我刚刚运行的这两个线程中显示的打印量不同。前两个打印件也使用相同的格式,但该值仍在线程1中更改。

for x in imports:

if float(x.prob) == 0.0:

logging.debug(float(x.prob))

logging.debug(float(x.prob))

logging.debug(x.prob)

logging.debug(str(x.prob))

logging.debug(str(float(x.prob)))

import pdb; pdb.set_trace()

[DEBUG] (Thread-1 ) 0.0

[DEBUG] (Thread-1 ) 0.0592

[DEBUG] (Thread-1 ) 0.0592

[DEBUG] (Thread-1 ) 0.0592

[DEBUG] (Thread-1 ) 0.0592

[DEBUG] (Thread-2 ) 0.0

[DEBUG] (Thread-2 ) 0.0

[DEBUG] (Thread-2 ) 0

[DEBUG] (Thread-2 ) 0.0592

[DEBUG] (Thread-2 ) 0.0592和

(Pdb) float(x.prob) == 0.0

False原因是什么?

我能做些什么,这是第一次正确解释?

类似于这个问题:https://stackoverflow.com/questions/2485338/pdb-show-different-variable-values-than-print-statements

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值