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.