Eredità

La possibilità di ereditare dalle classi è fondamentale per la programmazione orientata ad oggetti. Python supporta l'ereditarietà singola e multipla. Il termine ereditarietà singola indica che può esistere una sola superclasse. Il termine ereditarietà multipla indica che può essere più di una superclasse.

L'ereditarietà è implementata dalla creazione di classi secondarie mediante altre classi. Qualsiasi numero di classi Python possono essere superclassi. Nell'implementazione Jython di Python, è possibile ereditare direttamente o indirettamente solo da una classe Java. Non è necessario che venga fornita una superclasse.

Qualsiasi attributo o metodo in una superclasse si trova anche in qualsiasi sottoclasse e può essere utilizzato dalla classe stessa o da qualsiasi client purché l'attributo o il metodo non siano nascosti. Qualsiasi istanza di una sottoclasse può essere utilizzata ovunque sia possibile utilizzare un'istanza di una superclasse; questo è un esempio di polimorfismo. Tali funzioni abilitano il riutilizzo e la semplicità di estensione.

Esempio

class Class1: pass    #no inheritance

class Class2: pass

class Class3(Class1): pass     #single inheritance

class Class4(Class3, Class2): pass     #multiple inheritance