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