Python: Как я делаю подкласс из суперкласса?

Оба запроса выполняют внутреннее объединение, просто различный синтаксис.

80
задан mjv 22 October 2009 в 14:33
поделиться

8 ответов

# Initialize using Parent
#
class MySubClass(MySuperClass):
    def __init__(self):
        MySuperClass.__init__(self)

Или, что еще лучше, использование встроенной функции Python, super () (см. Python 2 / Python 3 документация для него) может быть немного лучшим методом вызова родительского элемента для инициализации:

# Better initialize using Parent (less redundant).
#
class MySubClassBetter(MySuperClass):
    def __init__(self):
        super(MySubClassBetter, self).__init__()

Или, точно так же, как указано выше, за исключением использования формы с нулевым аргументом super () , которая работает только внутри определения класса:

class MySubClassBetter(MySuperClass):
    def __init__(self):
        super().__init__()
84
ответ дан 24 November 2019 в 09:48
поделиться

Маленький героический пример:

class SuperHero(object): #superclass, inherits from default object
    def getName(self):
        raise NotImplementedError #you want to override this on the child classes

class SuperMan(SuperHero): #subclass, inherits from SuperHero
    def getName(self):
        return "Clark Kent"

class SuperManII(SuperHero): #another subclass
    def getName(self):
       return "Clark Kent, Jr."

if __name__ == "__main__":
    sm = SuperMan()
    print sm.getName()
    sm2 = SuperManII()
    print sm2.getName()
61
ответ дан 24 November 2019 в 09:48
поделиться
class MySubClass(MySuperClass):
    def __init__(self):
        MySuperClass.__init__(self)

        # <the rest of your custom initialization code goes here>

Раздел о наследовании в документации python объясняет это более подробно

37
ответ дан 24 November 2019 в 09:48
поделиться
class Class1(object):
    pass

class Class2(Class1):
    pass

Класс 2 является подклассом Класса 1

15
ответ дан 24 November 2019 в 09:48
поделиться
class Subclass (SuperClass):
      # Subclass stuff here
3
ответ дан 24 November 2019 в 09:48
поделиться

Вы используете:

class DerivedClassName(BaseClassName):

Подробнее см. В документации Python, раздел 9.5 .

3
ответ дан 24 November 2019 в 09:48
поделиться

Создание подклассов в Python выполняется следующим образом:

class WindowElement:
    def print(self):
        pass

class Button(WindowElement):
    def print(self):
        pass

Вот учебник о Python, который также содержит классы и подклассы.

0
ответ дан 24 November 2019 в 09:48
поделиться
class Mammal(object): 
#mammal stuff

class Dog(Mammal): 
#doggie stuff
2
ответ дан 24 November 2019 в 09:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: