我是靠谱客的博主 坚强飞鸟,最近开发中收集的这篇文章主要介绍python出现traceback什么意思_python – 获取Traceback的警告,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

你可以通过分配给warnings.showwarning获得你想要的。

warnings module documentation本身建议你这样做,所以它不是你被诱惑的源的黑暗面。 ????

You may replace this function with an alternative implementation by assigning to warnings.showwarning.

你可以定义一个新的函数,做什么warning.showwarning normaly,另外它打印堆栈。然后你把它而不是原来的:

import traceback

import warnings

import sys

def warn_with_traceback(message, category, filename, lineno, file=None, line=None):

log = file if hasattr(file,'write') else sys.stderr

traceback.print_stack(file=log)

log.write(warnings.formatwarning(message, category, filename, lineno, line))

warnings.showwarning = warn_with_traceback

此后,每个警告都将打印堆栈跟踪以及警告消息。然而,考虑到,如果警告被忽略,因为它不是第一个,什么也不会发生,所以你仍然需要执行:

warnings.simplefilter("always")

你可以通过警告模块的过滤器得到numpy.seterr提供的类似的控制

如果你想要的是python每次触发时报告每个警告,而不仅仅是第一次,你可以包括类似:

import warnings

warnings.simplefilter("always")

你可以通过传递不同的字符串作为参数来获得其他行为。使用相同的函数,您还可以根据引发它们的模块,它们提供的消息,警告类,引发它的代码行等,为警告指定不同的行为…

作为示例,您可以设置所有警告以引发异常,但应完全忽略的DeprecationWarnings除外:

import warnings

warnings.simplefilter("error")

warnings.simplefilter("ignore", DeprecationWarning)

这样,您可以获得对每个警告引发的错误的完整追溯(只有第一个,因为执行将停止…但您可以逐个解决它们,并创建一个过滤器,忽略那些您不想听到的警告再次…

最后

以上就是坚强飞鸟为你收集整理的python出现traceback什么意思_python – 获取Traceback的警告的全部内容,希望文章能够帮你解决python出现traceback什么意思_python – 获取Traceback的警告所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部