Nwlapcug.com


Come utilizzare l'ereditarietà in Python

Quando un'attività di programmazione con complessità moderata, è spesso una buona idea per incorporare i principi di progettazione object-oriented nel codice. L'ereditarietà è un principio che può permettere di costruire codice snello e specializzato che opere fuori esistenti basi di codice. Python supporta sia unico (una classe derivata da una classe) e l'ereditarietà multipla (una classe derivata da molte classi).

Istruzioni

Creare una classe Base

1

Creare una classe di base che le classi derivate possono chiamare. Assicurarsi che le variabili e i metodi siano pienamente funzionali.

2

Il seguente è un esempio di ciò che può sembrare una classe con alcuna eredità:
class myBaseClass(object):
baseVar = 23
def myFunc:
print 'Bob Dobbs has Slack'

Si noti che, secondo la recente convenzione, quando si definisce una classe che non eredita da eventuali pacchetti di utente, diciamo la classe da cui ereditare la classe Python 'oggetto'.

3

Utilizzare l'interprete di Python per assicurarsi che la classe base non ha errori di sintassi. È possibile utilizzare un file per contenere tutta la classe ed eseguire:
Python myBaseClass.pyIf it does, go back and debug.

Utilizzare l'ereditarietà singola o l'ereditarietà multipla

4

Creare una classe che include la classe base. Ciò avviene digitando il nome della classe base tra parentesi nella prima riga della dichiarazione di classe. La classe derivata può quindi utilizzare funzioni da classe di base, nonché a definire i propri metodi. Un esempio potrebbe essere:
class myDerivedClass(myBaseClass):
def derivedFunc:
myFunc
print baseVar

5

Creare un'istanza e chiamare i metodi della classe derivata all'esterno della classe:
myDerivedClass.derivedFunc
>>> Bob Dobbs has Slack
23

6

Creare una classe derivata che eredita da più classi elencando semplicemente le classi di base in sequenza tra parentesi dopo la definizione della classe, separata da virgole:
class myDerivedClass(myBaseClass1, myBaseClass2, myBaseClass3):
#insert your class code here

Consigli & Avvertenze

  • Quando si utilizza l'ereditarietà multipla, i nomi delle variabili e metodi sono utilizzati in preferenza da sinistra a destra nell'ordine che dichiarato le classi di base nella classe del bambino. In altre parole, la classe MyClass (A, B, C), verranno importati da un primo, B secondo e C ultimo.
  • Quando una variabile metodo e istanza sono importati nella stessa classe, è necessario che la variabile avrà la precedenza quando chiamato.
  • Capitolo di Guido Van Rossum su ereditarietà nel libro "Introduzione a Python" gratuito fornisce ulteriori approfondimenti sui modelli a oggetti Python (Vedi risorse qui sotto).
  • L'articolo di Wikipedia su modelli di progettazione fornisce un punto di ingresso per l'arte della progettazione object-oriented.
  • Quando si eredita da una classe, il codice per la classe base deve esistere prima codice di classe derivata!