Python-OOP'er: Klasse, objekt, arv og konstruktør med eksempel

Indholdsfortegnelse:

Anonim

OOP'er i Python

OOP'er i Python er en programmeringsmetode, der fokuserer på at bruge objekter og klasser på samme måde som andre generelle programmeringssprog. Objekterne kan være hvilke som helst virkelige enheder. Python giver udviklere mulighed for at udvikle applikationer ved hjælp af OOP-metoden med hovedfokus på genanvendelighed af kode. Det er meget let at oprette klasser og objekter i Python.

Hvad er en klasse?

En klasse i Python er en logisk gruppering af data og funktioner. Det giver frihed til at oprette datastrukturer, der indeholder vilkårligt indhold og dermed let tilgængeligt.

For eksempel vil enhver bankmedarbejder, der ønsker at hente kundeoplysninger online, gå til kundeklasse , hvor alle dets attributter som transaktionsoplysninger, udbetalings- og indbetalingsoplysninger, udestående gæld osv. Vil blive angivet.

I denne vejledning lærer vi,

  • Sådan defineres Python-klasser
  • Sådan fungerer arv
  • Python-konstruktører

Sådan defineres Python-klasser

For at definere klasse skal du overveje følgende punkter

Trin 1) I Python defineres klasser ved hjælp af nøgleordet "Klasse"

class myClass():

Trin 2) Inde i klasser kan du definere funktioner eller metoder, der er en del af denne klasse

def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
  • Her har vi defineret metode 1, der udskriver "Guru99."
  • En anden metode, vi har defineret, er metode 2, der udskriver "Software Testing" + SomeString. SomeString er den variabel, der leveres efter opkaldsmetoden

Trin 3) Alt i en klasse er indrykket, ligesom koden i funktionen, loop, hvis udsagn osv. Alt, hvad der ikke er indrykket, er ikke i klassen

BEMÆRK : Om brug af "selv" i Python

  • Selvargumentet henviser til selve objektet. Derfor brugen af ​​ordet selv. Så inde i denne metode vil selv henvise til den specifikke forekomst af dette objekt, der opereres.
  • Selv er det navn, som Pythons foretrækker for at angive den første parameter for instansmetoder i Python. Det er en del af Python-syntaksen for at få adgang til medlemmer af objekter

Trin 4) At lave et objekt i klassen

c = myClass()

Trin 5) At kalde en metode i en klasse

c.method1()c.method2(" Testing is fun")
  • Bemærk, at når vi kalder method1 eller method2, behøver vi ikke levere selv-nøgleordet. Det håndteres automatisk for os af Python-runtime.
  • Python runtime overfører "selv" -værdi, når du f.eks. Kalder en instansmetode på, uanset om du forsætligt angiver den eller ej
  • Du skal bare bekymre dig om ikke-selvargumenterne

Trin 6) Her er den komplette kode

# Eksempelfil til arbejde med klasserklasse myClass ():def metode1 (selv):print ("Guru99")def metode2 (selv, someString):print ("Software Testing: + someString)def hoved ():# udøve klassemetodernec = myClass ()c.method1 ()c.method2 ("Test er sjovt")hvis __navn __ == "__main__":hoved ()

Sådan fungerer arv

Arv er en funktion, der bruges i objektorienteret programmering; det refererer til at definere en ny klasse med mindre eller ingen ændringer til en eksisterende klasse. Den nye klasse kaldes afledt klasse og fra en, som den arver, kaldes basen . Python understøtter arv; det understøtter også flere arvinger . En klasse kan arve attributter og adfærdsmetoder fra en anden klasse kaldet underklasse eller arveklasse.

Python-arvssyntaks

class DerivedClass(BaseClass):body_of_derived_class

Trin 1) Kør følgende kode

# Eksempelfil til arbejde med klasserklasse myClass ():def metode1 (selv):print ("Guru99")klasse childClass (myClass):#def metode1 (selv):# myClass.method1 (selv);#print ("childClass Method1")def metode2 (selv):print ("childClass method2")def hoved ():# udøve klassemetodernec2 = childClass ()c2.method1 ()# c2.method2 ()hvis __navn __ == "__main__":hoved ()

Bemærk, at i childClass, metode 1 ikke er defineret, men den er afledt af den overordnede myClass. Outputtet er "Guru99."

Trin 2) Kommentarlinje nr. 8 & 10. Kør koden

Nu er metoden 1 defineret i childClass og output "childClass Method1" vises korrekt.

Trin 3) Kommentarlinje nr. 9. Kør koden

Du kan ringe til en metode fra overordnet klasse ved hjælp af syntaksen

ParentClassName.MethodName(self)

I vores tilfælde kalder vi, myClass.method1 (selv) og Guru99 udskrives som forventet

Trin 4 ) Kommentarlinje nr. 19. Kør koden.

Metode 2 i barneklassen kaldes, og "childClass method2" udskrives som forventet.

Python-konstruktører

En konstruktør er en klassefunktion, der instantierer et objekt til foruddefinerede værdier.

Det begynder med en dobbelt understregning (_). Det __init __ () metode

I nedenstående eksempel tager vi navnet på brugeren ved hjælp af konstruktør.

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

Output vil være:

Velkommen til Guru99, Alex

Python 2-eksempel

Ovenstående koder er Python 3 eksempler. Hvis du vil køre i Python 2, skal du overveje at følge koden.

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

Resumé:

"Klasse" er en logisk gruppering af funktioner og data. Python-klassen indeholder alle standardfunktionerne i Objektorienteret programmering.

  • Klasse arvemekanisme
  • En afledt klasse, der tilsidesætter enhver metode i sin basisklasse
  • En metode kan kalde metoden til en basisklasse med samme navn
  • Python-klasser er defineret af selve nøgleordet "klasse"
  • Inde i klasser kan du definere funktioner eller metoder, der er en del af klassen
  • Alt i en klasse er indrykket, ligesom koden i funktionen, loop, if statement osv.
  • Selvargumentet i Python henviser til selve objektet. Selv er det navn, som Pythons foretrækker for at angive den første parameter for instansmetoder i Python
  • Python-runtime overfører automatisk "selv" -værdien, når du f.eks. Kalder en instansmetode på, uanset om du forsætligt angiver den eller ej
  • I Python kan en klasse arve attributter og adfærdsmetoder fra en anden klasse kaldet underklasse eller arveklasse.