Наследование позволяет повторно использовать код

Практический проект: разработка программного обеспечения на Python

Mark Pedigo

Principal Data Scientist

Дорожная карта

Дорожная карта с выполненными и предстоящими этапами проекта.

Практический проект: разработка программного обеспечения на Python

Обзор созданного вами кода

  • BasicCalculator()
    • Базовые арифметические операции
  • FinancialCalculator
    • Наследует от BasicCalculator
    • Метод для финансовых вычислений
class BasicCalculator:
  def multiply(self, x, y):
      result = x * y
      return result
  ...
# Child of BasicCalculator
class FinancialCalculator(BasicCalculator):
    def monthly_interest(self, annual_interest_rate):
        return self.divide(annual_interest_rate, 12)
    ...
Практический проект: разработка программного обеспечения на Python

Наследование и повторное использование кода

  • Наследование для повторного использования кода
    • Переиспользование кода родительского класса
  • Иерархия классов
    • Наследование от дочерних к «дочерним-второго-порядка» классам
  • Гибкая структура
    • Создание гибкой и организованной иерархии классов
Практический проект: разработка программного обеспечения на Python

Другие виды наследования

  • Многоуровневое наследование
    • Класс наследует от подкласса другого класса
    • Используется в нашем примере: BasicCalculatorFinancialCalculatorMortgageCalculator
  • Иерархическое наследование
    • Несколько классов наследуют от одного родительского класса
  • Множественное наследование
    • Класс наследует от двух или более несвязанных классов
Практический проект: разработка программного обеспечения на Python

Использование super()

  • Доступ к методам и свойствам родителя
    • Используйте super() без явного указания родительского класса
  • Работа со сложным наследованием
    • Предотвращает дублирование кода и ошибки в иерархиях классов
class Animal:
    def __init__(self, name):
        self.name = name
class Dog(Animal):
    def __init__(self, name):
          # super calls __init__ 
          # method from parent class
          super().__init__(name)
Практический проект: разработка программного обеспечения на Python

Давайте потренируемся!

Практический проект: разработка программного обеспечения на Python

Preparing Video For Download...