Python OOP: razred, objekt, dedovanje in konstruktor s primerom

Kazalo:

Anonim

OOP-ji v Pythonu

OOP v Pythonu je programski pristop, ki se osredotoča na uporabo predmetov in razredov enako kot drugi splošni programski jeziki. Predmeti so lahko katere koli resnične entitete. Python razvijalcem omogoča razvoj aplikacij z uporabo pristopa OOP s poudarkom na ponovni uporabi kode. V Pythonu je zelo enostavno ustvariti razrede in predmete.

Kaj je razred?

Razred v Pythonu je logično združevanje podatkov in funkcij. Omogoča ustvarjanje podatkovnih struktur, ki vsebujejo poljubno vsebino in so zato lahko dostopne.

Na primer, vsak uslužbenec banke, ki želi po spletu pridobiti podatke o stranki, bi šel v razred strank , kjer bi bili navedeni vsi njeni atributi, kot so podrobnosti o transakciji, podrobnosti o dvigu in vplačilu, neporavnani dolg itd.

V tej vadnici se bomo naučili,

  • Kako definirati razrede Python
  • Kako deluje dedovanje
  • Python konstruktorji

Kako definirati razrede Python

Za določitev razreda morate upoštevati naslednje točke

1. korak) V Pythonu so razredi definirani s ključno besedo "Class"

class myClass():

Korak 2) V razredih lahko določite funkcije ali metode, ki so del tega razreda

def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
  • Tu smo definirali metodo1, ki natisne "Guru99."
  • Druga metoda, ki smo jo opredelili, je metoda2, ki natisne "Testiranje programske opreme" + SomeString. SomeString je spremenljivka, ki jo zagotavlja klicna metoda

3. korak) Vse v razredu je zamaknjeno, tako kot koda v funkciji, zanki, stavku if itd. Vse, kar ni zamaknjeno, ni v razredu

OPOMBA : O uporabi "self" v Pythonu

  • Argument sam se nanaša na sam predmet. Od tod tudi uporaba besede self. Torej, znotraj te metode se bo self skliceval na določen primerek tega predmeta, ki se upravlja.
  • Self je ime, ki ga po dogovoru s Pythoni raje označuje prvi parameter primerkovnih metod v Pythonu. Je del sintakse Python za dostop do članov predmetov

Korak 4) Naredite predmet razreda

c = myClass()

5. korak) Klicanje metode v razredu

c.method1()c.method2(" Testing is fun")
  • Upoštevajte, da kadar pokličemo metodo1 ali metodo2, nam ni treba navesti ključne besede self. To samodejno obravnava izvajalno okolje Pythona.
  • Izvajalno okolje Pythona bo posredovalo vrednost "self", ko v primerko pokličete metodo primerka, ne glede na to, ali jo namerno navedete ali ne
  • Paziti moraš le na ne-lastne argumente

6. korak) Tu je celotna koda

# Primer datoteke za delo z razredirazred myClass ():def method1 (self):tiskanje ("Guru99")def method2 (self, someString):print ("Testiranje programske opreme: + someString)def main ():# izvajajo metode predavanjc = myClass ()c.method1 ()c.method2 ("Testiranje je zabavno")če je __ime __ == "__glavno__":glavni ()

Kako deluje dedovanje

Dedovanje je funkcija, ki se uporablja pri objektno usmerjenem programiranju; nanaša se na opredelitev novega razreda z manj ali brez sprememb obstoječega razreda. Novi razred se imenuje izpeljani razred, iz tistega, ki ga podeduje, pa osnovni . Python podpira dedovanje; podpira tudi več dedovanja . Razred lahko podeduje atribute in vedenjske metode iz drugega razreda, imenovanega podrazred ali razred dediča.

Sintaksa dedovanja Pythona

class DerivedClass(BaseClass):body_of_derived_class

Korak 1) Zaženite naslednjo kodo

# Primer datoteke za delo z razredirazred myClass ():def method1 (self):tiskanje ("Guru99")razred otrokClass (myClass):#def method1 (self):# myClass.method1 (samo);#print ("ChildClass Method1")def method2 (self):print ("methodClass2")def main ():# izvajajo metode predavanjc2 = otrokClass ()c2.method1 ()# c2.method2 ()če je __ime __ == "__glavno__":glavni ()

Upoštevajte, da metoda in childClass, metoda1 ni definirana, vendar izhaja iz nadrejenega myClass. Rezultat je "Guru99."

Korak 2) Komentirajte vrstico 8 in 10. Zaženite kodo

Zdaj je metoda 1 definirana v ChildClass in izhod "ChildClass Method1" je pravilno prikazan.

Korak 3) Vrstica za komentar št. 9. Zaženite kodo

S sintakso lahko pokličete metodo nadrejenega razreda

ParentClassName.MethodName(self)

V našem primeru pokličemo myClass.method1 (self) in Guru99 se natisne po pričakovanjih

4. korak ) Vrstica za komentar št. 19. Zaženite kodo.

Pokliče se metoda 2 otroškega razreda in po pričakovanjih se natisne »childClass method2«.

Python konstruktorji

Konstruktor je funkcija razreda, ki ustvari objekt v vnaprej določene vrednosti.

Začne se z dvojnim podčrtajem (_). To je metoda __init __ ()

V spodnjem primeru uporabimo ime uporabnika s pomočjo konstruktorja.

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

Rezultat bo:

Dobrodošel v Guru99, Alex

Python 2 Primer

Zgornje kode so primeri Python 3. Če želite zagnati Python 2, upoštevajte naslednjo kodo.

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

Povzetek:

"Razred" je logično združevanje funkcij in podatkov. Razred Python ponuja vse standardne funkcije objektno usmerjenega programiranja.

  • Mehanizem dedovanja razredov
  • Izpeljani razred, ki preglasi katero koli metodo osnovnega razreda
  • Metoda lahko pokliče metodo osnovnega razreda z istim imenom
  • Python razredi so opredeljeni s ključno besedo "razred" sama
  • V razredih lahko določite funkcije ali metode, ki so del razreda
  • Vse v razredu je zamaknjeno, tako kot koda v funkciji, zanki, stavku if itd.
  • Argument self v Pythonu se nanaša na sam objekt. Self je ime, ki ga po dogovoru s Pythoni raje označuje prvi parameter primerkovnih metod v Pythonu
  • Izvajalno okolje Pythona bo samodejno posredovalo vrednost "self", ko v primer vključite metodo primerka, ne glede na to, ali jo namerno navedete ali
  • V Pythonu lahko razred podeduje atribute in vedenjske metode iz drugega razreda, imenovanega podrazred ali razred dediča.