L'ereditarietà riusa il codice

Caso di studio: sviluppare software in Python

Mark Pedigo

Principal Data Scientist

Roadmap

Roadmap che mostra le parti del progetto completate e quelle in arrivo.

Caso di studio: sviluppare software in Python

Riepilogo di quanto hai costruito finora

  • BasicCalculator()
    • Operazioni aritmetiche di base
  • FinancialCalculator
    • Eredita da BasicCalculator
    • Metodo per calcoli finanziari
class BasicCalculator:
  def multiply(self, x, y):
      result = x * y
      return result
  ...
# Figlia di BasicCalculator
class FinancialCalculator(BasicCalculator):
    def monthly_interest(self, annual_interest_rate):
        return self.divide(annual_interest_rate, 12)
    ...
Caso di studio: sviluppare software in Python

L'ereditarietà riusa il codice

  • Ereditarietà per riuso del codice
    • Riusa codice dalla classe genitore
  • Gerarchia di classi
    • Ereditare da figlia a "nipote"
  • Struttura flessibile
    • Progetta una gerarchia flessibile e ordinata
Caso di studio: sviluppare software in Python

Altri tipi di ereditarietà

  • Ereditarietà multilivello
    • Una classe eredita da una sottoclasse di un'altra
    • Usata nel case study: da BasicCalculator a FinancialCalculator a MortgageCalculator
  • Ereditarietà gerarchica
    • Più classi ereditano dallo stesso genitore
  • Ereditarietà multipla
    • Una classe eredita da due o più classi non correlate
Caso di studio: sviluppare software in Python

Uso di super()

  • Accedi a metodi e proprietà del genitore
    • Usa super() senza nominare la classe padre
  • Gestisce ereditarietà complesse
    • Evita duplicazioni ed errori nelle gerarchie di classi
class Animal:
    def __init__(self, name):
        self.name = name
class Dog(Animal):
    def __init__(self, name):
          # super richiama il metodo __init__ 
          # della classe genitore
          super().__init__(name)
Caso di studio: sviluppare software in Python

Ayo berlatih!

Caso di studio: sviluppare software in Python

Preparing Video For Download...