Что нужно передать super () при расширении класса в Python? - PullRequest
1 голос
/ 13 июля 2020

Я заметил, что многие люди передают дочерний класс вызову созданного родителя:

class ChildClass(ParentClass):
    def __init__(self, *args):
        super(ChildClass, self).__init__()

Но иногда я вижу это:

class ChildClass(ParentClass):
    def __init__(self, *args):
        super().__init__()

Где ничего передается родительскому конструктору.

До сих пор каждый раз, когда я вижу первый метод в каком-то коде, который я хочу использовать, мне удалось без проблем заменить его вторым методом. Мне интересно, могу ли я просто универсально использовать второй способ?

1 Ответ

1 голос
/ 13 июля 2020

Функция super () используется для предоставления доступа к методам и свойствам родительского или родственного класса. Функция super () возвращает объект, представляющий родительский класс. Если у вас python v3, это нормально - не передавать никаких аргументов суперфункции. Однако, если вы python v2, вам нужно спорить.

Синтаксис для python 3 -

super().methoName(args)

Синтаксис для более старых версий -

super(subClass, instance).method(args)
...