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

Sadržaj:

Anonim

OOP-ovi u Pythonu

OOP u Pythonu je programski pristup koji se fokusira na upotrebu objekata i klasa kao i ostalih općih programskih jezika. Predmeti mogu biti bilo koji entiteti iz stvarnog svijeta. Python omogućava programerima da razvijaju aplikacije koristeći OOP pristup s glavnim fokusom na ponovnu upotrebu koda. U Pythonu je vrlo jednostavno stvoriti klase i objekte.

Što je razred?

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

Na primjer, svaki zaposlenik banke koji želi dohvatiti podatke o kupcu putem interneta prešao bi u klasu kupaca , gdje bi bili navedeni svi njegovi atributi, kao što su detalji transakcije, detalji povlačenja i pologa, nepodmireni dug itd.

U ovom uputstvu ćemo naučiti,

  • Kako definirati klase Python
  • Kako funkcionira nasljeđivanje
  • Python konstruktori

Kako definirati klase Python

Da biste definirali nastavu, morate uzeti u obzir sljedeće točke

Korak 1) U Pythonu su klase definirane ključnom riječi "Class"

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".
  • Druga metoda koju smo definirali je metoda2 koja ispisuje "Testiranje softvera" + SomeString. SomeString je varijabla koju daje metoda pozivanja

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

NAPOMENA : O korištenju "self" u Pythonu

  • Argument samog sebe odnosi se na sam objekt. Otuda upotreba riječi self. Dakle, unutar ove metode self će se odnositi na određenu instancu ovog objekta na kojem se operira.
  • Self je naziv koji se prema konvenciji Pythona preferira da označi prvi parametar metoda instance u Pythonu. Dio je sintakse Python za pristup članovima objekata

Korak 4) Izrada predmeta klase

c = myClass()

Korak 5) Za pozivanje metode u razredu

c.method1()c.method2(" Testing is fun")
  • Primijetite da kada pozivamo metodu1 ili metodu2, ne moramo navoditi ključnu riječ self. To nam automatski rukuje Python runtime.
  • Python runtime proslijedit će vrijednost "self" kada u instanci pozovete metodu instance, bez obzira dajete li to namjerno ili ne
  • Jednostavno morate brinuti o argumentima koji nisu ja

Korak 6) Evo kompletnog koda

# Primjer datoteke za rad s klasamaklasa myClass ():def metoda1 (samo):ispis ("Guru99")def metoda2 (self, someString):ispis ("Testiranje softvera: + someString)def glavni ():# vježbajte metode predavanjac = myClass ()c.method1 ()c.method2 ("Testiranje je zabavno")ako je __ime __ == "__glavno__":glavni()

Kako funkcionira nasljeđivanje

Nasljeđivanje je značajka koja se koristi u objektno orijentiranom programiranju; odnosi se na definiranje nove klase s manjom ili nikakvom preinakom postojeće klase. Nova klasa naziva se izvedena klasa, a od one koju nasljeđuje naziva se baza . Python podržava nasljeđivanje; također podržava više nasljeđa . Klasa može naslijediti atribute i metode ponašanja od druge klase koja se naziva klasa podklase ili nasljednika.

Sintaksa nasljeđivanja Pythona

class DerivedClass(BaseClass):body_of_derived_class

Korak 1) Pokrenite sljedeći kod

# Primjer datoteke za rad s klasamaklasa myClass ():def metoda1 (samo):ispis ("Guru99")razred childClass (myClass):#def metoda1 (samo):# myClass.method1 (self);#print ("ChildClass Method1")def metoda2 (samo):ispis ("childClass method2")def glavni ():# vježbajte metode predavanjac2 = dječji razred ()c2.metod1 ()# c2.method2 ()ako je __ime __ == "__glavno__":glavni()

Primijetite da metoda in childClass, metoda1 nije definirana, ali je izvedena iz nadređenog myClass. Rezultat je "Guru99".

Korak 2) Komentirajte liniju br. 8 i 10. Pokrenite kôd

Sada je metoda 1 definirana u ChildClass i izlaz "ChildClass Method1" je ispravno prikazan.

Korak 3) Red za komentariranje br. 9. Pokrenite kod

Možete nazvati metodu roditeljske klase koristeći sintaksu

ParentClassName.MethodName(self)

U našem slučaju zovemo myClass.method1 (self) i Guru99 se ispisuje prema očekivanjima

Korak 4 ) Red za komentariranje br. 19. Pokrenite kod.

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

Python konstruktori

Konstruktor je funkcija klase koja instancira objekt u unaprijed definirane vrijednosti.

Počinje dvostrukim podvlakom (_). To je __init __ () metoda

U donjem primjeru uzimamo ime korisnika pomoću konstruktora.

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

Izlaz će biti:

Dobrodošao u Guru99, Alex

Primjer Pythona 2

Iznad su kodovi primjeri Python 3-a. Ako želite pokrenuti Python 2, razmotrite sljedeći kod.

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

Sažetak:

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

  • Mehanizam nasljeđivanja klase
  • Izvedena klasa koja nadjačava bilo koju metodu svoje osnovne klase
  • Metoda može pozvati metodu osnovne klase s istim imenom
  • Klase Pythona definirane su samom ključnom riječi "class"
  • Unutar klasa možete definirati funkcije ili metode koje su dio klase
  • Sve u klasi je uvučeno, baš kao i kod u funkciji, petlji, if naredbi itd.
  • Argument self u Pythonu odnosi se na sam objekt. Self je naziv koji se prema konvenciji Pythona preferira da označi prvi parametar metoda instance u Pythonu
  • Python runtime automatski će proslijediti vrijednost "self" kada u instanci pozovete metodu instance, bez obzira dajete li to namjerno ili ne
  • U Pythonu klasa može naslijediti atribute i metode ponašanja iz druge klase koja se naziva klasa podklase ili nasljednika.