可能重复:
了解Python super()
类的B子类A,所以在B中__init__我们应该__init__像这样调用A :
class B(A):
def __init__(self):
A.__init__(self)
Run Code Online (Sandbox Code Playgroud)
但是super(),我看到这样的事情:
class B(A):
def __init__(self):
super(B, self).__init__() #or super().__init__()
Run Code Online (Sandbox Code Playgroud)
我的问题是:
为什么不super(B, self).__init__(self)呢?仅仅因为返回代理对象是绑定的?
如果我在super中省略第二个参数并且返回代理对象是未绑定的,那么我应该写super(B).__init__(self)吗?
super()返回基类的实例,因此在任何其他方法调用中self都会隐式传递给__init__()它.
关于你的第二个问题,这是正确的.在super()没有实例的情况下调用第二个参数将返回对类本身的引用,而不是从子类实例构造的实例.
| 归档时间: |
|
| 查看次数: |
1246 次 |
| 最近记录: |