Python OOP-uri: clasă, obiect, moștenire și constructor cu exemplu

OOP în Python

OOP în Python este o abordare de programare care se concentrează pe utilizarea obiectelor și claselor la fel ca și alte limbaje de programare generale. Obiectele pot fi orice entitate din lumea reală. Python permite dezvoltatorilor să dezvolte aplicații folosind abordarea OOP, cu accent major pe reutilizarea codului. Este foarte ușor să creezi 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 să conțină conținut arbitrar și, prin urmare, ușor accesibile.

De exemplu, pentru orice angajat al băncii care dorește să aducă online detaliile clientului ar merge la clasa de client, unde ar fi enumerate toate atributele sale, cum ar fi detaliile tranzacției, detaliile privind retragerea și depozitul, datoria restantă etc.

Cum să definești Python clase

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

Pas 1) In Python, clasele sunt definite de "Clasă" cuvinte cheie

class myClass():

Pas 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 afișează „Guru99”.
  • O altă metodă pe care am definit-o este metoda 2 care afișează „Software Testing”+ SomeString. SomeString este variabila furnizată de metoda de apelare

Pas 3) Totul dintr-o clasă este indentat, la fel ca codul din funcție, buclă, instrucțiunea if etc. Orice nu este indentat nu este în clasă

Defini Python clase

NOTĂ: Despre folosirea „self” în Python

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

Pas 4) A face un obiect al clasei

c = myClass()

Pas 5) A apela o metodă dintr-o clasă

c.method1()
    c.method2(" Testing is fun")
  • Observați că atunci când apelăm metoda 1 sau metoda 2, nu trebuie să furnizăm cuvântul cheie propriu. Acest lucru este gestionat automat pentru noi de către Python timpul de rulare.
  • Python runtime va trece valoarea „self” 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 non-sine

Pas 6) Aici este codul complet

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

Cum funcționează Moștenirea

Moștenirea este o caracteristică utilizată în programarea orientată pe obiecte; se referă la definirea unei noi clase cu mai puține sau fără modificări la o clasă existentă. Noua clasă se numește clasa derivată iar de la care moşteneşte se numeşte de bază. Python sprijină moștenirea; suporta si moșteniri multiple. O clasă poate moșteni atribute și metode de comportament de la o altă clasă numită subclasă sau clasă moștenitoare.

Defini Python clase

Python Sintaxa moștenirii

class DerivedClass(BaseClass):
    body_of_derived_class

Pas 1) Rulați următorul cod

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

Observați că în childClass, metoda 1 nu este definită, dar este derivată din părintele myClass. Ieșirea este „Guru99”.

Pas 2) Anulați comentariile pe rândurile 8 și 10. Rulați codul

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

Pas 3) Anulați comentariul la rândul #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 așa cum era de așteptat

Etapa 4) Anulați comentariile la rândul #19. Rulați codul.

Metoda 2 a clasei copil este apelată și „metoda class2 copil” este tipărită așa cum era de așteptat.

Python Constructori

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

Începe cu o liniuță de subliniere dublă (_). Este metoda __init__().

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

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

Ieșirea va fi:

Bun venit la Guru99, Alex

Python 2 Exemplu

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

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

Aflați următorul nostru tutorial despre Polimorfismul în Python

Rezumat

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

  • Mecanismul moștenirii clasei
  • O clasă derivată care suprascrie orice metodă a clasei sale de bază
  • O metodă poate apela metoda unei clase de bază cu același nume
  • Python Clasele sunt definite prin cuvinte cheie "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 codul din funcție, buclă, instrucțiunea if etc.
  • Argumentul de sine în Python se referă la obiectul în sine. Sine este numele preferat prin convenție de Pythons pentru a indica primul parametru al metodelor de instanță în Python
  • Python runtime va trece automat valoarea „self” atunci când apelați o metodă de instanță, indiferent dacă o furnizați în mod deliberat sau nu
  • In Python, o clasă poate moșteni atribute și metode de comportament de la o altă clasă numită subclasă sau clasă moștenitoare.

Rezumați această postare cu: