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

Как назвать метод класса родительского класса в Python?

Формирование проблем: Вызов родительских методов Данные родительские классы Класс PCHILD C, который наследует от метода PCLASS P.MY_Method (), определенный на Parent Peate P. Пример: рассмотрим следующий пример, где вы создаете родитель и детский класс. Вы хотите позвонить в My_method () … Как позвонить в класс родительского метода в Python? Читать далее “

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

Формирование проблемы: вызывая родительские методы

Данный

  • Родитель Класс п
  • Ребенок Класс C что наследует от п
  • Класс Метод P.my_method () Определяется на родительском п

Проблема : В рамках метода класса C , как позвонить родителям методом P.my_method () ?

Пример : Рассмотрим следующий пример, где вы создаете родитель и детский класс. Вы хотите позвонить my_method ( ) изнутри дочерних классов ‘ child_method ( ).

class P:
    '''Parent Class'''
    def my_method(self):
        print('hi')

class C(P):
    '''Child Class'''
    def child_method(self):
        # ... Call my_method() of parent P ...
        # TODO


# Create a child
child = C()
child.child_method()
# OUTPUT: hi

Итак, как позвонить родительским методам? Давайте погрузимся прямо в наш первый метод!

Способ 1: Используйте самостоятельную ссылку на доступ к родительскому методу

Ребенок наследует все методы и атрибуты от родителя. Таким образом, чтобы получить доступ к родительскому методу, вы можете использовать Я ссылка, переданная аргументом метода ребенка. Например, вы можете позвонить self.carent_method () В детском методе доступа к родительскому методу.

Вот пример:

class P:
    def parent_method(self):
        print('hi')

class C(P):
    def child_method(self):
        self.parent_method()


child = C()
child.child_method()

Выход, действительно:

hi

Однако это только работает, если ребенок не перезаписать метод родителя. Читайте дальше, чтобы узнать, как использовать Super () Чтобы справиться с этой проблемой!

Способ 2: Используйте Super () для доступа к способу родителя

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

Вот как вы можете позвонить по методу родителей от ребенка, используя Super () – Если ребенок перезаписывает тот же метод.

class P:
    '''Parent'''
    def my_method(self):
        print('parent')

class C(P):
    '''Child'''
    def my_method(self):
        print('child')


    def call_parent_method(self):
        super().my_method()

        
child = C()
child.call_parent_method()
# parent

Обратите внимание, что если вы не использовали использование Super (). my_method () Но self.my_method () например, в Метод 1 , Python будет называть методом ребенка, поскольку он перезаписывает метод родителя.

class P:
    '''Parent'''
    def my_method(self):
        print('parent')

class C(P):
    '''Child'''
    def my_method(self):
        print('child')


    def call_parent_method(self):
        self.my_method()

        
child = C()
child.call_parent_method()
# child

Вы можете посмотреть видео, чтобы узнать все о Python’s Super () Метод:

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

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

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

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

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

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

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

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

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

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

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