Python OOP-ovi: klasa, objekt, nasljeđivanje i konstruktor s primjerom

OOPs in Python

OOPs in Python je programski pristup koji se fokusira na korištenje objekata i klasa kao i drugi opći programski jezici. Objekti mogu biti bilo koji entiteti iz stvarnog svijeta. Python omogućuje razvojnim programerima da razvijaju aplikacije koristeći OOP pristup s glavnim fokusom na ponovnu upotrebu koda. Vrlo je lako kreirati klase i objekte Python.

Što je klasa?

Razred u Python je logično grupiranje podataka i funkcija. Daje slobodu stvaranja struktura podataka koje sadrže proizvoljan sadržaj i stoga su lako dostupne.

Na primjer, bilo koji bankovni zaposlenik koji želi dohvatiti podatke o klijentu putem interneta otišao bi na klasa kupaca, gdje bi svi njegovi atributi poput pojedinosti o transakciji, pojedinosti o povlačenju i uplati, nepodmirenom dugu itd. bili navedeni.

Kako definirati Python Nastava

Za definiranje klase morate uzeti u obzir sljedeće točke

Korak 1) In Python, klase su definirane pomoću “Razred” ključne riječi

class myClass():

Korak 2) Unutar klasa možete definirati funkcije ili metode koje su dio ove klase

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Ovdje smo definirali metodu1 koja ispisuje "Guru99."
  • Još jedna metoda koju smo definirali je metoda2 koja ispisuje “Testiranje softvera”+ Neki niz. SomeString je varijabla koju daje pozivajuća metoda

Korak 3) Sve u klasi je uvučeno, baš kao kod u funkciji, petlji, if naredbi itd. Sve što nije uvučeno nije u klasi

Definirati Python Nastava

BILJEŠKA: O korištenju "sebe" u Python

  • Samoargument se odnosi na sam predmet. Otuda i upotreba riječi ja. Dakle, unutar ove metode, self će se odnositi na specifičnu instancu ovog objekta na kojem se radi.
  • Self je ime koje prema konvenciji preferira Pythons za označavanje prvog parametra metoda instance u Python, To je dio Python sintaksa za pristup članovima objekata

Korak 4) Napraviti objekt klase

c = myClass()

Korak 5) Pozvati metodu u klasi

c.method1()
    c.method2(" Testing is fun")
  • Primijetite da kada pozivamo method1 ili method2, ne moramo unijeti vlastitu ključnu riječ. To za nas automatski rješava Python vrijeme izvođenja.
  • Python runtime će proslijediti "self" vrijednost kada pozovete metodu instance na instanci, bez obzira jeste li je unijeli namjerno ili ne
  • Samo se morate brinuti o ne-jastim argumentima

Korak 6) Ovdje je kompletan kod

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

Kako funkcionira nasljeđivanje

Nasljeđivanje je značajka koja se koristi u objektno orijentiranom programiranju; odnosi se na definiranje nove klase s manje ili bez izmjena postojeće klase. Nova klasa se zove izvedena klasa a od one koju nasljeđuje naziva se baza. Python podržava nasljedstvo; također podržava višestruko nasljeđivanje. Klasa može naslijediti atribute i metode ponašanja od druge klase koja se naziva podklasa ili klasa nasljednica.

Definirati Python Nastava

Python Sintaksa nasljeđivanja

class DerivedClass(BaseClass):
    body_of_derived_class

Korak 1) Pokrenite sljedeći kod

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

Primijetite da in childClass, method1 nije definiran, ali je izveden iz nadređenog myClass. Rezultat je "Guru99."

Korak 2) Odkomentirajte redak # 8 i 10. Pokrenite kod

Sada je metoda 1 definirana u childClass i izlaz “childClass Method1” je ispravno prikazan.

Korak 3) Odkomentirajte redak #9. Pokrenite kod

Možete pozvati metodu nadređene klase pomoću sintakse

ParentClassName.MethodName(self)

U našem slučaju, pozivamo, myClass.method1(self) i Guru99 se ispisuje kako se očekuje

Korak 4) Odkomentirajte redak #19. Pokrenite kod.

Poziva se metoda 2 podređene klase i ispisuje se "childClass method2" prema očekivanjima.

Python Konstruktori

Konstruktor je funkcija klase koja instancira objekt prema unaprijed definiranim vrijednostima.

Počinje dvostrukom podvlakom (_). To je metoda __init__().

U donjem primjeru uzimamo ime korisnika pomoću konstruktora.

class User:
    name = ""

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

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

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

Izlaz će biti:

Dobro došao u Guru99, Alex

Python 2 Primjer

Gornji kodovi su Python 3 primjera, ako želite ući Python 2 razmotrite sljedeći kod.

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

Saznajte o našem sljedećem vodiču Polimorfizam u Python

Rezime

“Klasa” je logično grupiranje funkcija i podataka. Python klasa pruža sve standardne značajke objektno orijentiranog programiranja.

  • Mehanizam nasljeđivanja klasa
  • Izvedena klasa koja nadjačava bilo koju metodu svoje osnovne klase
  • Metoda može pozvati metodu osnovne klase s istim imenom
  • Python Klase su definirane ključnom riječi “razred” sebe
  • Unutar klasa možete definirati funkcije ili metode koje su dio klase
  • Sve u klasi je uvučeno, baš kao kod u funkciji, petlji, if naredbi itd.
  • Argument o sebi u Python odnosi se na sam predmet. Self je ime koje prema konvenciji preferira Pythons za označavanje prvog parametra metoda instance u Python
  • Python runtime će automatski proslijediti "self" vrijednost kada pozovete metodu instance na instanci, bez obzira dali ste je namjerno ili ne
  • In Python, klasa može naslijediti atribute i metode ponašanja od druge klase koja se naziva podklasa ili klasa nasljednik.