在python中,super(classItSelf)在做什么?
我有一个要处理的项目有这样的代码:
class Tele(TcInterface):
_signal = signal.SIGUSR1
def __init__(self):
super(Tele, self).__init__()
self._c = None
这条线做什么?
super(Tele, self).__init__()
我是一个cpp java代码,真的对python的东西感到困惑。
答案 0 :(得分:1)
您需要至少将self
传递给__init__
。
python与一些传统的OOP语言不同,后者将自动处理self
或this
或您为当前实例提供的任何名称。
在python中,即使在构造函数中也会显示self
,因此您需要自己传入并引用它。这里super(...)
,它基本上寻找代表所有超类的代理,super(...).__init__
引用超类中的构造函数。它与您在C ++或Java中调用super()
的概念相同。
请参阅doc for more:https://docs.python.org/2/library/functions.html#super
答案 1 :(得分:0)
这将调用超级/父类(__init__()
)的TclInterface
函数(构造函数)。这通常是必要的,因为超类构造函数在子类中被__init__()
覆盖。