Python OOPs: Clasă, obiect, moștenire și constructor cu exemplu

Cuprins:

Anonim

OOP-uri în Python

OOP-urile din Python sunt o abordare de programare care se concentrează pe utilizarea obiectelor și claselor la fel ca și alte limbaje generale de programare. Obiectele pot fi orice entități din lumea reală. Python permite dezvoltatorilor să dezvolte aplicații folosind abordarea OOPs, cu accentul major pe reutilizarea codului. Este foarte ușor să creați clase și obiecte în Python.

Ce este o clasă?

O clasă în Python este o grupare logică de date și funcții. Oferă libertatea de a crea structuri de date care conțin conținut arbitrar și, prin urmare, ușor accesibil.

De exemplu, pentru orice angajat al băncii care dorește să obțină detaliile clientului online, ar merge la clasa de clienți , unde toate atributele sale, cum ar fi detaliile tranzacției, detaliile de retragere și depozit, datoriile restante etc. ar fi listate.

În acest tutorial, vom învăța,

  • Cum se definesc clasele Python
  • Cum funcționează Moștenirea
  • Python Constructors

Cum se definesc clasele Python

Pentru a defini clasa, trebuie să luați în considerare următoarele puncte

Pasul 1) În Python, clasele sunt definite de cuvântul cheie „Clasă”

class myClass():

Pasul 2) În cadrul claselor, puteți defini funcții sau metode care fac parte din această clasă

def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
  • Aici am definit metoda 1 care tipărește „Guru99”.
  • O altă metodă pe care am definit-o este metoda 2 care tipărește „Testare software” + SomeString. SomeString este variabila furnizată de metoda de apelare

Pasul 3) Totul dintr-o clasă este indentat, la fel ca și codul din funcție, buclă, instrucțiune if, etc. Orice lucru care nu este indentat nu se află în clasă

NOTĂ : Despre utilizarea „auto” în Python

  • Argumentul de sine se referă la obiectul în sine. De aici și utilizarea cuvântului sine. Deci, în interiorul acestei metode, auto se va referi la instanța specifică a acestui obiect care este operat.
  • Self este numele preferat de Pythons prin convenție pentru a indica primul parametru al metodelor de instanță din Python. Face parte din sintaxa Python pentru a accesa membrii obiectelor

Pasul 4) Pentru a face un obiect al clasei

c = myClass()

Pasul 5) Pentru a apela o metodă într-o clasă

c.method1()c.method2(" Testing is fun")
  • Observați că atunci când apelăm metoda1 sau metoda2, nu trebuie să furnizăm cuvântul cheie pentru sine. Acest lucru este gestionat automat pentru noi de runtime-ul Python.
  • Runtime-ul Python va trece valoarea „auto” atunci când apelați o metodă de instanță, indiferent dacă o furnizați în mod deliberat sau nu
  • Trebuie doar să îți pese de argumentele care nu sunt de sine

Pasul 6) Iată codul complet

# Exemplu de fișier pentru lucrul cu cursurileclasa myClass ():metoda def1 (auto):print („Guru99”)metoda def2 (self, someString):print ("Testare software: + someString)def main ():# exercitați metodele de clasăc = Clasa mea ()c. metoda1 ()c.method2 („Testarea este distractivă”)dacă __name __ == "__main__":principal()

Cum funcționează Moștenirea

Moștenirea este o caracteristică utilizată în programarea orientată pe obiecte; se referă la definirea unei clase noi, cu o modificare mai mică sau deloc a unei clase existente. Noua clasă se numește clasă derivată și de la una pe care o moștenește se numește bază . Python acceptă moștenirea; suportă, de asemenea, mai multe moșteniri . O clasă poate moșteni atribute și metode de comportament de la o altă clasă numită subclasă sau clasă moștenitor.

Sintaxa moștenirii Python

class DerivedClass(BaseClass):body_of_derived_class

Pasul 1) Rulați următorul cod

# Exemplu de fișier pentru lucrul cu cursurileclasa myClass ():metoda def1 (auto):print („Guru99”)clasa childClass (myClass):#def method1 (self):# myClass.method1 (self);#print ("childClass Method1")metoda def2 (auto):print („metoda childClass2”)def main ():# exercitați metodele de clasăc2 = ChildClass ()c2.method1 ()# c2.method2 ()dacă __name __ == "__main__":principal()

Observați că în childClass, metoda 1 nu este definită, dar este derivată din părința myClass. Rezultatul este „Guru99”.

Pasul 2) Linia de comentariu nr. 8 și 10. Rulați codul

Acum, metoda 1 este definită în childClass și rezultatul „ChildClass Method1” este corect afișat.

Pasul 3) Uncomment Line # 9. Rulați codul

Puteți apela o metodă a clasei părinte folosind sintaxa

ParentClassName.MethodName(self)

În cazul nostru, apelăm, myClass.method1 (self) și Guru99 este tipărit conform așteptărilor

Pasul 4 ) Uncomment Line # 19. Rulați codul.

Se numește metoda 2 a clasei copil și se imprimă „metoda childClass2” conform așteptărilor.

Python Constructors

Un constructor este o funcție de clasă care instanțiază un obiect la valori predefinite.

Începe cu o subliniere dublă (_). Metoda __init __ ()

În exemplul de mai jos luăm numele utilizatorului folosind constructor.

class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()

Rezultatul va fi:

Bine ați venit la Guru99, Alex

Exemplu Python 2

Codurile de mai sus sunt exemple Python 3, dacă doriți să rulați în Python 2, vă rugăm să luați în considerare următorul cod.

# 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()

Rezumat:

„Clasa” este o grupare logică de funcții și date. Clasa Python oferă toate caracteristicile standard ale programării orientate pe obiecte.

  • Mecanism de moștenire a clasei
  • O clasă derivată care suprascrie orice metodă din clasa sa de bază
  • O metodă poate apela metoda unei clase de bază cu același nume
  • Clasele Python sunt definite de cuvinte cheie „ de clasă“ în sine
  • În cadrul claselor, puteți defini funcții sau metode care fac parte din clasă
  • Totul dintr-o clasă este indentat, la fel ca și codul din funcție, buclă, instrucțiune if etc.
  • Argumentul de sine din Python se referă la obiectul în sine. Self este numele preferat de Pythons prin convenție pentru a indica primul parametru al metodelor de instanță din Python
  • Runtime-ul Python va trece automat la valoarea „auto” atunci când apelați o metodă de instanță, indiferent dacă o furnizați în mod deliberat sau nu
  • În Python, o clasă poate moșteni atribute și metode de comportament de la o altă clasă numită subclasă sau clasă moștenitor.