直接调用__init__的目的是什么?

2024-03-18

我很难弄清楚我遇到的一些代码的用途。

代码有一个类Foo,其中有一个__init__带有多个参数的方法。根据我迄今为止对 Python 的了解,通过调用Foo('bar'),它将将此字符串作为参数传递给__init__(我认为这应该相当于构造函数)。

但我遇到的问题是我正在查看的代码正在调用Foo.__init__('bar')直接地。这样做的目的是什么?我几乎觉得我错过了背后的一些其他目的__init__.


The __init__()当您实例化一个类时,会调用该方法。但是,那__init__()父类中的方法不会自动调用,因此如果您想扩展其功能,需要直接调用它:

class A:

     def __init__(self, x):
          self.x = x

class B(A):

     def __init__(self, x, y):
          A.__init__(self, x)
          self.y = y

注意,上面的调用也可以写成super http://docs.python.org/3/library/functions.html#super:

class B(A):

     def __init__(self, x, y):
          super().__init__(x)
          self.y = y

The purpose of the __init__()方法是初始化类。它通常负责填充实例变量。正因为如此,你想拥有__init__()为类层次结构中的所有类调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

直接调用__init__的目的是什么? 的相关文章

随机推荐