错误不正确吗?

时间:2013-03-05 21:32:32

标签: python exception visual-studio-2012

好的,所以这是我在很长一段时间里看到过的最奇怪的事情。所以,我像往常一样开火vs2012,开始一些进口。我有一个我正在使用的模块,我通过静态导入从我的模块的根目录导入它。

import os
from foo.bar import bang

我在解释器中执行这些......突然之间,我的异常不起作用。

我输入,assert 1 == 2,没有任何反应。我键入x[1],没有任何反应。没有x是未定义的,没有断言错误,没有。

好的,所以我重启我的解释器,然后执行断言声明。它工作正常。

有没有人见过这样的东西?什么可能导致它? (是的,我知道它是导入的模块,但看到它是相当多的代码,也许是在我潜入深度之前开始寻找的地方?)

[编辑]

在交互式中运行命令似乎也需要很长时间 - dir()需要3秒钟才能找到8个左右的项目列表。

1 个答案:

答案 0 :(得分:3)

这是一种可能性:

import sys

def hook(type, value, traceback):
    pass

sys.excepthook = hook
assert 1 == 2

在这种情况下,断言不会打印任何内容。您可以通过查看sys.excepthook != sys.__excepthook__

来验证这一点

注意:ipython,例如,愚弄这个值。因此,如果您正在对此进行测试,请确保仅使用python而不是ipython