OOP in Python
OOPs in Python è un approccio di programmazione che si concentra sull'uso di oggetti e classi come gli 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 facile creare classi e oggetti in Python.
Cos'è una classe?
Una classe in Python è un raggruppamento logico di dati e funzioni. Offre la libertà di creare strutture di dati che contengono contenuti arbitrari e quindi facilmente accessibili.
Ad esempio, per qualsiasi dipendente di banca che desidera recuperare i dettagli del cliente online andrebbe alla classe cliente , dove sarebbero elencati tutti i suoi attributi come i dettagli della transazione, i dettagli del prelievo e del deposito, il debito insoluto, ecc.
In questo tutorial impareremo,
- Come definire le classi Python
- Come funziona l'ereditarietà
- Costruttori Python
Come definire le classi Python
Per definire la classe è necessario considerare i seguenti punti
Passaggio 1) In Python, le classi sono definite dalla parola chiave "Class"
class myClass():
Passaggio 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 metodo1 che stampa "Guru99".
- Un altro metodo che abbiamo definito è method2 che stampa "Software Testing" + SomeString. SomeString è la variabile fornita dal metodo chiamante
Passaggio 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 : sull'utilizzo 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 sintassi Python per accedere ai membri degli oggetti
Passaggio 4) Creare un oggetto della classe
c = myClass()
Passaggio 5) Per chiamare un metodo in una classe
c.method1()c.method2(" Testing is fun")
- Nota che quando chiamiamo metodo1 o metodo2, non dobbiamo fornire la parola chiave self. Viene gestito automaticamente per noi dal runtime Python.
- Il runtime Python passerà il valore "self" quando chiami un metodo di istanza nell'istanza, che tu lo fornisca deliberatamente o meno
- Devi solo preoccuparti degli argomenti non personali
Passaggio 6) Ecco il codice completo
# File di esempio per lavorare con le classiclass myClass ():def metodo1 (self):print ("Guru99")def method2 (self, someString):print ("Test del software: + someString)def main ():# esercita i metodi di classec = myClass ()c.method1 ()c.method2 ("Testare è divertente")se __name __ == "__main__":principale()
Come funziona l'ereditarietà
L'ereditarietà è una funzionalità utilizzata nella programmazione orientata agli oggetti; si riferisce alla definizione di una nuova classe con meno o nessuna modifica a una classe esistente. La nuova classe è chiamata classe derivata e da quella che eredita è chiamata base . Python supporta l'ereditarietà; supporta anche più eredità . Una classe può ereditare attributi e metodi di comportamento da un'altra classe chiamata sottoclasse o classe erede.
Sintassi dell'ereditarietà di Python
class DerivedClass(BaseClass):body_of_derived_class
Passaggio 1) Esegui il codice seguente
# File di esempio per lavorare con le classiclass myClass ():def metodo1 (self):print ("Guru99")classe childClass (myClass):#def method1 (self):# myClass.method1 (self);#print ("childClass Method1")def metodo2 (self):print ("childClass method2")def main ():# esercita i metodi di classec2 = childClass ()c2.method1 ()# c2.method2 ()se __name __ == "__main__":principale()
Si noti che in childClass, method1 non è definito ma è derivato dal genitore myClass. L'output è "Guru99".
Passaggio 2) Rimuovere il commento dalla riga 8 e 10. Eseguire il codice
Ora, il metodo 1 è definito in childClass e l'output "childClass Method1" viene visualizzato correttamente.
Passaggio 3) Rimuovere il commento dalla riga 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
Passaggio 4 ) Rimuovere il commento dalla riga 19. Esegui il codice.
Il metodo 2 della classe figlio viene chiamato e "childClass method2" viene stampato come previsto.
Costruttori Python
Un costruttore è una funzione di classe che istanzia un oggetto a valori predefiniti.
Inizia con un doppio trattino basso (_). Metodo It __init __ ()
Nell'esempio seguente stiamo prendendo il nome dell'utente che utilizza il costruttore.
class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()
L'output sarà:
Benvenuto in Guru99, Alex
Esempio di Python 2
I codici sopra riportati sono esempi di Python 3, se si desidera eseguire in Python 2 si prega di considerare il seguente codice.
# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass 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 methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()
Sommario:
"Class" è un raggruppamento logico di funzioni e dati. La classe Python fornisce tutte le funzionalità standard della programmazione orientata agli oggetti.
- Meccanismo di ereditarietà delle classi
- Una classe derivata che sostituisce qualsiasi metodo della sua classe di base
- Un metodo può chiamare il metodo di una classe base con lo stesso nome
- Le classi Python sono definite dalla parola 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'argomento self 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
- Il runtime Python 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.