产生警告
方法
warnings.warn(message, category=None, stacklevel=1, source=None)
category可选参数
Warning | 这是所有警告类的基类。它是异常的子类。 UserWarning | warn()的默认类别。 DeprecationWarning | 关于不推荐使用的功能的警告的基类别(默认情况下忽略)。 SyntaxWarning | 关于可疑语法特征的警告的基类。 RuntimeWarning | 关于可疑运行时功能的警告的基类别。 FutureWarning | Base类别,用于关于将来会在语义上发生变化的构造的警告。 PendingDeprecationWarning | 关于将来不推荐使用的功能的警告的基本类别(默认情况下忽略)。 ImportWarning | 导入模块过程中触发的警告的基本类别(默认情况下忽略)。 UnicodeWarning | 与Unicode相关的警告的基类别。 BytesWarning | 与字节和bytearray相关的警告的基类别。 ResourceWarning | 与资源使用相关的警告的基类别。
示例
# -*- coding: utf-8 -*- import warnings def foo(): warnings.warn("Deprecated", DeprecationWarning) if __name__ == '__main__': foo()
过滤警告
方法
warnings.filterwarnings(action,message ='',category = Warning, module='',lineno = 0,append = False) warnings.simplefilter(action, category = Warning,lineno = 0,append = False)
action是以下字符串之一:
error | 将匹配警告转换为异常 ignore | 不会打印匹配的警告 always | 总是打印匹配的警告 default | 打印发出警告的每个位置的首次出现的匹配警告 module | 将为发出警告的每个模块打印首次发生的匹配警告 once | 仅打印第一次匹配的警告,不管位置如何
示例
# 方式一 import warnings warnings.filterwarnings("ignore") foo() # 方式二 with warnings.catch_warnings(): warnings.simplefilter("ignore") foo() # 方式三:命令行方式 $ python -W ignore foo.py