擅长:python、mysql、java
<p>这应该是有效的:</p>
<pre><code>import inspect
try:
some_bad_code()
except Exception, e:
frm = inspect.trace()[-1]
mod = inspect.getmodule(frm[0])
print 'Thrown from', mod.__name__
</code></pre>
<p>编辑:Stephan202提到了一个角落的案子。在这种情况下,我想我们可以默认为文件名。在</p>
^{pr2}$
<p>问题是如果模块没有被加载(因为在读取该文件中的代码时抛出了异常),那么<code>inspect.getmodule</code>调用将返回None。所以,我们只使用违规帧引用的文件名。(谢谢你指出这一点,斯蒂芬202!)在</p>