Python OOPs: Klasse, Objekt, Arv og Konstruktør med eksempel
OOPs inn Python
OOPs inn Python er en programmeringstilnærming som fokuserer på å bruke objekter og klasser på samme måte som andre generelle programmeringsspråk. Objektene kan være alle enheter i den virkelige verden. Python lar utviklere utvikle applikasjoner ved å bruke OOPs-tilnærmingen med hovedfokus på gjenbrukbarhet av kode. Det er veldig enkelt å lage klasser og objekter i Python.
Hva er en klasse?
En klasse i Python er en logisk gruppering av data og funksjoner. Det gir frihet til å lage datastrukturer som inneholder vilkårlig innhold og dermed lett tilgjengelig.
For eksempel, for enhver bankansatt som ønsker å hente kundeopplysningene på nettet, vil gå til kundeklasse, hvor alle dens attributter som transaksjonsdetaljer, uttaks- og innskuddsdetaljer, utestående gjeld osv. vil bli oppført.
Hvordan definere Python klasser
For å definere klasse må du vurdere følgende punkter
Trinn 1) In Python, klasser er definert av "Klasse" søkeord
class myClass():
Trinn 2) Inne i klasser kan du definere funksjoner eller metoder som er en del av denne klassen
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Her har vi definert metode1 som skriver ut "Guru99."
- En annen metode vi har definert er metode2 som skriver ut "Software Testing" + SomeString. SomeString er variabelen som leveres av kallemetoden
Trinn 3) Alt i en klasse er innrykket, akkurat som koden i funksjonen, loopen, if-setningen osv. Alt som ikke er innrykket er ikke i klassen
MERKNADER: Om å bruke «selv» i Python
- Selvargumentet refererer til selve objektet. Derav bruken av ordet selv. Så inne i denne metoden vil jeg referere til den spesifikke forekomsten av dette objektet som blir operert.
- Selv er navnet foretrukket av konvensjonen av Pythons for å indikere den første parameteren for instansmetoder i Python. Det er en del av Python syntaks for å få tilgang til medlemmer av objekter
Trinn 4) Å lage et objekt av klassen
c = myClass()
Trinn 5) Å kalle en metode i en klasse
c.method1() c.method2(" Testing is fun")
- Legg merke til at når vi kaller metode1 eller metode2, trenger vi ikke oppgi selvsøkeordet. Det håndteres automatisk for oss av Python kjøretid.
- Python runtime vil sende "selv" verdi når du kaller en instansmetode på i instans, enten du gir den bevisst eller ikke
- Du må bare bry deg om ikke-selv-argumentene
Trinn 6) Her er den komplette koden
# 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()
Hvordan arv fungerer
Arv er en funksjon som brukes i objektorientert programmering; det refererer til å definere en ny klasse med mindre eller ingen modifikasjon til en eksisterende klasse. Den nye klassen heter avledet klasse og fra en som den arver kalles basen. Python støtter arv; den støtter også flere arv. En klasse kan arve attributter og atferdsmetoder fra en annen klasse kalt underklasse eller arvingsklasse.
Python Arvesyntaks
class DerivedClass(BaseClass): body_of_derived_class
Trinn 1) Kjø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()
Legg merke til at metode1 i childClass ikke er definert, men den er avledet fra overordnet myClass. Utgangen er "Guru99."
Trinn 2) Uncomment Line #8 & 10. Kjør koden
Nå er metode 1 definert i childClass og utdata "childClass Method1" vises riktig.
Trinn 3) Fjern kommentar linje #9. Kjør koden
Du kan kalle en metode for overordnet klasse ved å bruke syntaksen
ParentClassName.MethodName(self)
I vårt tilfelle kaller vi, myClass.method1(self) og Guru99 skrives ut som forventet
Trinn 4) Fjern kommentar linje #19. Kjør koden.
Metode 2 av barneklassen kalles og "barnKlasse metode2" skrives ut som forventet.
Python Konstruktører
En konstruktør er en klassefunksjon som instansierer et objekt til forhåndsdefinerte verdier.
Det begynner med en dobbel understreking (_). Det __init__() metoden
I eksemplet nedenfor tar vi navnet på brukeren som bruker 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()
Utgang vil være:
Velkommen til Guru99, Alex
Python 2 Eksempel
Kodene ovenfor er Python 3 eksempler, hvis du vil løpe inn Python 2 vurder 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 vår neste veiledning om Polymorfisme i Python
Sammendrag
"Klasse" er en logisk gruppering av funksjoner og data. Python klasse gir alle standardfunksjonene til objektorientert programmering.
- Klasse arvemekanisme
- En avledet klasse som overstyrer hvilken som helst metode for sin basisklasse
- En metode kan kalle metoden til en basisklasse med samme navn
- Python Klasser er definert av nøkkelord "klasse" selv
- Inne i klasser kan du definere funksjoner eller metoder som er en del av klassen
- Alt i en klasse er rykket inn, akkurat som koden i funksjonen, loopen, if-setningen osv.
- Selvargumentet i Python refererer til selve objektet. Selv er navnet foretrukket av konvensjonen av Pythons for å indikere den første parameteren for instansmetoder i Python
-
Python runtime vil overføre "selv" verdi automatisk når du kaller en instansmetode på i instans, enten du gir den bevisst eller ikke
- In Python, kan en klasse arve attributter og atferdsmetoder fra en annen klasse kalt underklasse eller arvingsklasse.