在python中,super(classItSelf)在做什么?

时间:2015-03-13 21:02:51

标签: python oop

在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的东西感到困惑。

2 个答案:

答案 0 :(得分:1)

您需要至少将self传递给__init__

python与一些传统的OOP语言不同,后者将自动处理selfthis或您为当前实例提供的任何名称。

在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__()覆盖。