Python OOP: classe, oggetto, ereditarietà e costruttore con esempio
OOPs dentro Python
OOPs dentro Python è un approccio alla programmazione che si concentra sull'utilizzo di oggetti e classi come altri linguaggi di programmazione generali. Gli oggetti possono essere qualsiasi entità del mondo reale. Python consente agli sviluppatori di sviluppare applicazioni utilizzando l'approccio OOP con particolare attenzione alla riusabilità del codice. È molto semplice creare classi e oggetti Python.
Cos'è una classe?
Una lezione dentro Python è un raggruppamento logico di dati e funzioni. Dà la libertà di creare strutture dati che contengano contenuti arbitrari e quindi facilmente accessibili.
Ad esempio, qualsiasi impiegato di banca che volesse recuperare i dati del cliente online dovrebbe andare su classe cliente, dove verranno elencati tutti i suoi attributi, come i dettagli delle transazioni, i dettagli di prelievo e deposito, il debito in sospeso, ecc.
Come definire Python classi
Per definire la classe è necessario considerare i seguenti punti
Passo 1) In Python, le classi sono definite da "Classe" parola chiave
class myClass():
Passo 2) All'interno delle classi è possibile definire funzioni o metodi che fanno parte di questa classe
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Qui abbiamo definito il metodo 1 che stampa "Guru99".
- Un altro metodo che abbiamo definito è il metodo2 che stampa “Software Testing”+ SomeString. SomeString è la variabile fornita dal metodo chiamante
Passo 3) Tutto in una classe è rientrato, proprio come il codice nella funzione, nel ciclo, nell'istruzione if, ecc. Tutto ciò che non è rientrato non è nella classe
NOTA: Informazioni sull'uso di "self" in Python
- L'autoargomentazione si riferisce all'oggetto stesso. Da qui l'uso della parola sé. Quindi all'interno di questo metodo, self si riferirà all'istanza specifica di questo oggetto su cui si sta operando.
- Self è il nome preferito per convenzione da Pythons per indicare il primo parametro dei metodi di istanza in Python. Fa parte della Python sintassi per accedere ai membri degli oggetti
Passo 4) Per creare un oggetto della classe
c = myClass()
Passo 5) Per chiamare un metodo in una classe
c.method1() c.method2(" Testing is fun")
- Si noti che quando chiamiamo il metodo1 o il metodo2, non dobbiamo fornire la parola chiave self. Questo viene gestito automaticamente per noi da Python tempo di esecuzione.
- Python il runtime passerà il valore "self" quando chiami un metodo di istanza nell'istanza, indipendentemente dal fatto che tu lo fornisca deliberatamente o meno
- Devi solo preoccuparti degli argomenti non-sé
Passo 6) Ecco il codice completo
# Example file for working with classes class myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
Come funziona l'ereditarietà
L'ereditarietà è una funzionalità utilizzata nella programmazione orientata agli oggetti; si riferisce alla definizione di una nuova classe con modifiche minori o nessuna modifica a una classe esistente. Viene chiamata la nuova classe classe derivata e da quello che eredita è chiamato il base. Python supporta l'ereditarietà; supporta anche eredità multiple. Una classe può ereditare attributi e metodi di comportamento da un'altra classe chiamata sottoclasse o classe erede.
Python Sintassi dell'ereditarietà
class DerivedClass(BaseClass): body_of_derived_class
Passo 1) Esegui il seguente codice
# Example file for working with classes class myClass(): def method1(self): print("Guru99") class childClass(myClass): #def method1(self): #myClass.method1(self); #print ("childClass Method1") def method2(self): print("childClass method2") def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Si noti che in childClass, il metodo1 non è definito ma deriva dal genitore myClass. L'output è "Guru99".
Passo 2) Decommenta le righe n. 8 e 10. Esegui il codice
Ora, il metodo 1 è definito in childClass e l'output "childClass Method1" viene visualizzato correttamente.
Passo 3) Decommenta la riga n.9. Esegui il codice
Puoi chiamare un metodo della classe genitore usando la sintassi
ParentClassName.MethodName(self)
Nel nostro caso, chiamiamo myClass.method1(self) e Guru99 viene stampato come previsto
Passo 4 ) Decommenta la riga n.19. Esegui il codice.
Viene chiamato il metodo 2 della classe figlia e viene stampato "childClass metodo2" come previsto.
Python Costruttori
Un costruttore è una funzione di classe che istanzia un oggetto su valori predefiniti.
Inizia con un doppio trattino basso (_). Metodo __init__()
Nell'esempio seguente stiamo prendendo il nome dell'utente utilizzando il costruttore.
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name) User1 = User("Alex") User1.sayHello()
L'uscita sarà:
Benvenuto su Guru99, Alex
Python 2 Esempio
I codici sopra riportati sono Python 3 esempi, se vuoi correre Python 2 Si prega di considerare il seguente codice.
# How to define Python classes # Example file for working with classes class myClass(): def method1(self): print "Guru99" def method2(self,someString): print "Software Testing:" + someString def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main() #How Inheritance works # Example file for working with classes class myClass(): def method1(self): print "Guru99" class childClass(myClass): #def method1(self): #myClass.method1(self); #print "childClass Method1" def method2(self): print "childClass method2" def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Scopri il nostro prossimo tutorial su Polimorfismo dentro Python
Sintesi
“Classe” è un raggruppamento logico di funzioni e dati. Python fornisce tutte le funzionalità standard della programmazione orientata agli oggetti.
- Meccanismo di ereditarietà delle classi
- Una classe derivata che sovrascrive qualsiasi metodo della relativa classe base
- Un metodo può chiamare il metodo di una classe base con lo stesso nome
- Python Le classi sono definite da parole chiave "classe" stessa
- All'interno delle classi è possibile definire funzioni o metodi che fanno parte della classe
- Tutto in una classe è rientrato, proprio come il codice nella funzione, nel ciclo, nell'istruzione if, ecc.
- L'argomentazione personale in Python si riferisce all'oggetto stesso. Self è il nome preferito per convenzione da Pythons per indicare il primo parametro dei metodi di istanza in Python
-
Python runtime passerà automaticamente il valore "self" quando chiami un metodo di istanza nell'istanza, indipendentemente dal fatto che tu lo fornisca deliberatamente o meno
- In Python, una classe può ereditare attributi e metodi di comportamento da un'altra classe chiamata sottoclasse o classe erede.