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
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.
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.