【发布时间】:2020-07-30 09:16:07
【问题描述】:
为什么我们在使用super().__init__?的时候不需要自引用(比如下面的第9行)
class labourers():
def __init__(self,name,department,salary):
self.name = name
self.department = department
self.salary = salary
class managers(labourers):
def __init__(self,name,department,salary,numberofpeople):
super().__init__(name,department,salary)
self.numberofpeople = numberofpeople
【问题讨论】:
-
出于同样的原因,您在调用其他方法时不必传递
self。 -
@MarkMeyer。不完全是。超级是特别的。
-
@MarkMeyer 但是你必须写
self.method(...)。super使用了一些魔法来避免必须指定self。 -
在 Python 2 中,您必须编写
super(managers, self)。它在 Python 3 中进行了更改以使其自动化。 -
@interjay 我的问题是问你为什么不需要
super().__init__(self, name,department,salary)答案是,就像方法调用一样,python 会为你做。
标签: python python-3.x oop super