Рубрики
Без рубрики

Python Super () – простое иллюстрированное руководство

Встроенный метод Super () Python возвращает временный объект суперкласса, чтобы помочь вам получить доступ к своим методам. Его цель состоит в том, чтобы избежать использования имени базового класса. Это также позволяет вашему классу наследовать из нескольких базовых классов. Визуальная идея Super () Идея проста: используйте Super (), чтобы вызвать методы, определенные в … Python Super () – простая иллюстрированная руководство Подробнее »

Автор оригинала: Chris.

Встроенный Python Super () Метод возвращает временный объект суперкласса, чтобы помочь вам получить доступ к своим методам. Его цель состоит в том, чтобы избежать использования имени базового класса. Это также позволяет вашему классу наследовать из нескольких базовых классов.

Визуальная идея супер ()

Идея просто: использовать Super () Чтобы вызвать методы, определенные в родительских классах – будь то ваш ребенок класс наследует от одного или нескольких базовых классов. Смотрите графику:

Нужно мне вести вас через этот пример? Посмотрите видео объяснения следующим!

Видео супер () на примере

Далее вы узнаете обоих случаях по примеру!

Простой пример 1: Super () с одним наследством

Наследование В объектно-ориентированном программировании позволяет создавать классовую иерархию, где один класс ребенка наследует все методы от другого родительского класса. Это упрощает разработку крупных программных проектов и позволяет избежать избыточного кода. Вы можете узнать больше о концепции наследства в наших Руководство по разговору здесь Отказ

Например, следующий код определяет родительский класс Организм и детский класс Человек Отказ Детский класс использует Super () Чтобы запустить конструктор метода родительского класса.

class Organism:
    def __init__(self):
        print('I live')


class Human(Organism):
    def __init__(self):
        print('I am human')
        super().__init__()


alice = Human()

Вывод:

I am human
I live

Здесь вы называете базовый класс организм, используя следующий код:

super().__init__()

Семантически эквивалентный звонок кода будет:

Organism.__init__(self)

Вы называете __init __ () Метод на базовом классе Организм и передайте ссылку на экземпляр вызова в качестве аргумента. Таким образом, вы также можете изменить внутренние атрибуты Я экземпляр в конструкторе базового класса.

Однако преимущество использования Super () .__ init __ () по сравнению с Parentclass .__ init __ (Self) Это то, что вы не позвоните в родительский класс явно. Это выгодно, потому что он каникует ребенка из родительского класса. Например, если вы изменили имя Parentclass к NewParentClass метод с использованием Super () будет превосходить, потому что он все равно будет работать, а метод, использующий Parentclass .__ init __ (Self) будет бросать ошибку.

Пример 2: Супер () с несколькими наследованием

Один из уникальных функций Python по сравнению с другими языками программирования состоит в том, что это позволяет Многократное наследование Отказ

Многократное наследование означает, что класс может наследовать от нескольких родителей. Например, класс Человек Может наследовать от двух родительских классов: Организм и Мыслитель Отказ Скажем, вы определяете метод Live () в организме и думаю () в мыслителе. Если человеческий объект наследует от обоих классов, он может позвонить Live () и думаю () в то же время! Вы используете Super () Способ для вызова этих функций:

class Organism:
    def live(self):
        print('I live')


class Thinker:
    def think(self):
        print('I think')


class Human(Organism, Thinker):
    def __init__(self):
        print('I am human')
        super().live()
        super().think()
 

alice = Human()

Вывод:

I am human
I live
I think

Я должен упомянуть, что в этом примере вы также могли бы назвать Self.Live () и self.Том () В классе Человек вместо Super (). Живи () и Super (). думаю () Отказ Выходность будет одинаковым в обоих случаях. На практике вы бы использовали бывшие для Методы экземпляра и последний за Методы класса Отказ Разница между оба объясняется в нашем руководстве в блоге здесь.

Резюме

Встроенный Python Super () Метод возвращает временный объект суперкласса, чтобы помочь вам получить доступ к своим методам. Его цель состоит в том, чтобы избежать использования имени базового класса. Это также позволяет вашему классу наследовать из нескольких базовых классов.

Вы можете погрузиться глубже в некоторые из пособий Super () Метод здесь:

Если вы потратили час, изучающие все три ресурса, вы стали Super () Суперзвезда – и это поможет вам по всей вашей программированной карьере. Хорошая прибыль в инвестированное время!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.