Python约定:我通常应该调用超类'__init__吗?

Avi*_*ohn 5 python convention class

我阅读了这个问题评分最高的答案,它说__init__如果需要,我们应该打电话给超级班,而我们不必这样做。但我的问题更多的是关于约定。

通常,作为一般规则,我是否应该始终__init__在我的类中调用超类__init__,而不管我目前是否“需要”该方法中的功能?

cwe*_*web 3

有些类需要__init__调用它们的方法才能工作。他们使用自己的__init__方法设置所需的属性。

例子:

class one ():
    def __init__ (self):
        self.number = 20
    def show_number(self):
        return self.number
Run Code Online (Sandbox Code Playgroud)

如果您继承上述类,则需要调用其__init__方法来定义属性number。如果__init__未调用该方法,则在尝试调用该方法时可能会出现错误show_number

至于语法,如果__init__继承类的方法没有发生任何事情,则不需要调用它。如果您认为不调用该__init__方法会让其他人感到困惑,您可以随时用注释来解释您的推理。即使您不需要它,调用它也没有任何坏处。