Python如何从继承的类中获取父类变量

2024-06-16 13:00:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有继承自FileNotFoundError的类:

class ConfigFileNotFoundError(FileNotFoundError):
    def __init__(self):
        self.filename = super().filename
        FileNotFoundError.__init__(self)
        self.message = "File is absent: {}".format(self.filename)

如何从FileNotFoundError获取filename属性?因为如果我这样做:

^{pr2}$

self.filenameNone。在


Tags: selfformatmessage属性initisdeffilename
1条回答
网友
1楼 · 发布于 2024-06-16 13:00:16

你对super的调用是完全错误的,因为我认为你对继承有误解。在

子类也是其超类的成员。您不需要向超类请求属性;因为您是从它继承的,所以您获得了所有相同的属性。在

在Python中,do需要显式调用超类初始化方法:

def __init__(self):
    super().__init__(self)

它通常负责设置共享属性的值。在

但是,您的代码还有一个更基本的问题。在引发异常时,永远不会传递任何filename属性,因此子类或超类都不可能报告它。您可能需要这样做:

^{pr2}$

以及

^{3}$

相关问题 更多 >