Python OOPs: Klasse, Objekt, Arv og Konstruktør med Eksempel
OOPs ind Python
OOPs ind Python er en programmeringstilgang, der fokuserer på at bruge objekter og klasser på samme måde som andre generelle programmeringssprog. Objekterne kan være alle enheder i den virkelige verden. Python giver udviklere mulighed for at udvikle applikationer ved hjælp af OOPs tilgang med hovedfokus på genbrugbar kode. Det er meget nemt 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 skabe datastrukturer, der indeholder vilkårligt indhold og dermed let tilgængelige.
For eksempel vil enhver bankmedarbejder, der ønsker at hente kundeoplysningerne online gå til kundeklasse, hvor alle dens attributter som transaktionsdetaljer, udbetalings- og indbetalingsdetaljer, udestående gæld osv. vil blive opført.
Sådan defineres Python klasser
For at definere klasse skal du overveje følgende punkter
Trin 1) In Python, klasser er defineret af "Klasse" søgeord
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 metode1, der udskriver "Guru99."
- En anden metode, vi har defineret, er metode2, der udskriver "Software Testing"+ SomeString. SomeString er den variabel, der leveres af den kaldende metode
Trin 3) Alt i en klasse er indrykket, ligesom koden i funktionen, loop, if-sætning osv. Alt, der ikke er indrykket, er ikke i klassen
BEMÆRK: Om at bruge “selv” i Python
- Selvargumentet refererer til selve objektet. Derfor brugen af ordet selv. Så inde i denne metode vil selv henvise til den specifikke forekomst af dette objekt, der bliver opereret på.
- Selv er det navn, som konventionen foretrækker af Pythons for at angive den første parameter af instansmetoder i Python. Det er en del af Python syntaks for at få adgang til medlemmer af objekter
Trin 4) At lave et objekt af 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 metode1 eller metode2, behøver vi ikke at angive selvsøgeordet. Det håndteres automatisk for os af Python driftstid.
- Python runtime vil sende "selv" værdi, når du kalder en instansmetode på i instans, uanset om du angiver den bevidst eller ej
- Du skal bare bekymre dig om ikke-selv-argumenterne
Trin 6) Her er den komplette kode
# 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()
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 ændring af en eksisterende klasse. Den nye klasse hedder afledt klasse og fra en, som den arver, kaldes den bund. Python understøtter arv; det understøtter også flere arv. En klasse kan arve attributter og adfærdsmetoder fra en anden klasse kaldet underklasse eller arvingklasse.
Python Arvesyntaks
class DerivedClass(BaseClass): body_of_derived_class
Trin 1) Kør følgende kode
# 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()
Bemærk, at metode1 i childClass ikke er defineret, men den er afledt fra den overordnede myClass. Outputtet er "Guru99."
Trin 2) Fjern kommentarer Linje #8 & 10. Kør koden
Nu er metode 1 defineret i childClass og output "childClass Method1" vises korrekt.
Trin 3) Fjern kommentar linje #9. Kør koden
Du kan kalde en metode for den overordnede klasse ved hjælp af syntaksen
ParentClassName.MethodName(self)
I vores tilfælde kalder vi, myClass.method1(self) og Guru99 udskrives som forventet
Trin 4) Fjern kommentar linje #19. Kør koden.
Metode 2 i den underordnede klasse kaldes, og "childKlasse metode2" udskrives som forventet.
Python Konstruktører
En konstruktør er en klassefunktion, der instansierer et objekt til foruddefinerede værdier.
Det begynder med en dobbelt understregning (_). Det __init__() metode
I eksemplet nedenfor tager vi navnet på brugeren, der bruger konstruktør.
class User: name = "" def __init__(self, name): self.name = name def 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 løbe ind Python 2 Overvej venligst følgende kode.
# 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()
Lær vores næste selvstudie om Polymorfi i Python
Resumé
"Klasse" er en logisk gruppering af funktioner og data. Python klasse giver alle standardfunktionerne i objektorienteret programmering.
- Klasse arvemekanisme
- En afledt klasse, der tilsidesætter enhver metode i dens basisklasse
- En metode kan kalde metoden for en basisklasse med samme navn
- Python Klasser er defineret ved nøgleord ”Klasse” selv
- 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-sætning osv.
- Selvargumentationen i Python refererer til selve objektet. Selv er det navn, som konventionen foretrækker af Pythons for at angive den første parameter af instansmetoder i Python
-
Python runtime vil automatisk sende "selv" værdi, når du kalder en instansmetode på i instans, uanset om du angiver den bevidst eller ej
- In Python, kan en klasse arve attributter og adfærdsmetoder fra en anden klasse kaldet underklasse eller arvingsklasse.