我很难弄清楚我遇到的一些代码的目的.
代码有一个类Foo,它有一个__init__带多个参数的方法.从我到目前为止学到的Python,通过调用Foo('bar'),它将传递这个字符串作为参数__init__(我认为它应该相当于一个构造函数).
但我遇到的问题是我正在查看的代码是Foo.__init__('bar')直接调用.这样做的目的是什么?我几乎觉得我错过了其他目的__init__.
Ray*_*ger 17
__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
Run Code Online (Sandbox Code Playgroud)
注意,上面的调用也可以使用super编写:
class B(A):
def __init__(self, x, y):
super().__init__(x)
self.y = y
Run Code Online (Sandbox Code Playgroud)
该目的的的__init__()方法是初始化该类.它通常负责填充实例变量.因此,您希望__init__()在类层次结构中调用所有类.
| 归档时间: |
|
| 查看次数: |
12828 次 |
| 最近记录: |