我想创建一个类似异常的警告类。
基本上是以下设置
import warnings
class customwarning(warnings):
pass
class warning1(customwarning):
def __init__(self, message):
self.message = message
def __str__(self):
return repr(self.message)
但是当我尝试运行警告时,我收到以下错误:
TypeError: module.__init__() takes at most 2 arguments (3 given)
在这一行:
class customwarning(warnings):
在互联网上搜索时,我发现只有
warnings.filterwarnings('ignore', '.*do not.*',)
warnings.warn(Warning message')
但是关于课程没什么。 如何创建一个像这样工作的类?
答案 0 :(得分:1)
您应该做的第一件事是区分 Warning
类和 warnings
类的作用。
Warning
类是您要扩展以创建customwarning 类的基类,而 warnings
类用于控制处理警告的方式一旦发布,即是否被压制或显示。这两个是不同的东西,基本上你应该在你的代码片段中使用它们。
试试:
import warnings
class customwarning(Warning):
pass
class warning1(customwarning):
def __init__(self, message):
self.message = message
def __str__(self):
return repr(self.message)
warnings.warn('message',warning1)
代码中的最后一行是代码运行后将向终端呈现警告的内容。 'message' 字符串是第一个参数,它在初始化后传递给 warning1。
在 dunder 方法 str
中表示的是将要显示的内容。要从 warnings
类更改消息的格式,您可以使用其 .formatwarning()
方法。
要了解有关 warnings
及其使用方法的更多信息,请访问 here
您也可以不使用双继承而只从 Warning
类继承一次。