Python

Python-arv

Python-arv

Python er et objektorienteret programmeringssprog. På et objektorienteret programmeringssprog opretter vi klasser og udfører den tilsigtede funktionalitet. Arv er det grundlæggende træk ved objektorienterede programmeringssprog. Arv kan defineres som en klasses evne til at arve alle funktionerne og egenskaberne i en anden klasse. Arv giver i det væsentlige mulighed for at udvide egenskaberne for en eksisterende klasse. Arv er gearet med de to hovedbegreber:

  1. Forældreklasse eller basisklasse
  2. Børneklasse eller afledt klasse

Forældreklassen er den klasse, der gør det muligt at arve andre klasser fra. Det kaldes også Base Class. Underordnet klasse eller afledt klasse er den klasse, der arver alle egenskaberne og funktionerne i en anden klasse. Arv fremmer flere fordele, dvs.e., det er repræsentationen af ​​det virkelige verdensarvfænomen. Det tilskynder genanvendelighed af kode. Hvis en funktion er defineret i en klasse, kan den anden klasse arve denne klasse og bruge alle de eksisterende funktioner. Det er ikke nødvendigt at skrive den samme kode igen og igen for at udføre lignende opgaver. Arv anvendes på flere niveauer. For eksempel, hvis klasse B arves fra A og klasse C arves fra klasse B, har klasse C alle egenskaberne for klasse B og såvel som klasse A. Syntaksen for arv er som følger:

KlasseforældreKlasse:
Implementeringsoplysninger om overordnede klasse
klasse ChildClass:
Implementeringsoplysninger om barneklassen

Selvom barneklassen har adgang til alle funktionerne og funktionerne i overordnede klassen, kan den dog også tilføje sine nye funktioner og funktioner.

Denne artikel beskriver og dækker alle aspekter af Python-arv.

Arv implementering i Python

Arv kan anvendes i mange situationer. Lad os antage, at du bygger et softwaresystem til et universitet. Det kan bestå af flere interessenter som studerende, lærere, personale osv. Så hver person har et navn, alder, e-mail og andre almindelige egenskaber. Det er ikke nødvendigt at erklære alle egenskaber i hver klasse separat. Vi kan lave en personeklasse, og alle interessenternes klasser kan arve alle de fælles egenskaber og funktioner fra personklassen. I dette tilfælde er der ikke behov for at skrive de fælles egenskaber i hver klasse igen og igen. På samme måde kan vi overveje en dyreklasse. Der er hundreder af dyretyper i denne verden. Alle dyr spiser, sover og har også nogle arter. Dette koncept kan også implementeres ved hjælp af arv.

Lad os betragte dyret som en superklasse og implementere arven. I nedenstående eksempel har vi oprettet en dyreklasse. Dyreklassen er forældreklassen. Desuden har vi skabt hunde- og katteklasser, som arver dyreklassens egenskaber og funktioner. Pass-nøgleordet bruges i underordnet klasse, når vi ikke behøver at implementere nogen udvidet funktionalitet i underordnet klasse.

# skaber forældreklasse
klasse Dyr:
#initialiseringsfunktion
#initilisering af dyrets navn og artstype
def __init __ (selv, navn, specie_type):
selv.navn = navn
selv.specie_type = specie_type
#a funktion til at udskrive dyrets navn
def printnavn (selv):
print ("Dyrets navn er:", selv.navn)
#a funktion til at udskrive dyreartens type
def printspecie (selv):
print ("Typen af ​​art er:", selv.specie_type)
# skaber hundeklassen som børneklasse i dyreklassen
klasse Hund (dyr):
# ingen udvidelse eller ændring
passere
# nu har hundeklassen adgang til alle funktionerne og egenskaberne i dyreklassen
#creating the dog class object
dogObj = Hund ("Hund", "kødædende")
hundObj.Print navn()
hundObj.printspecie ()
#oprette katteklassen som børneklasse i dyreklassen
klasse Kat (dyr):
# initiliseringsfunktionen i katklassen
def __init __ (selv):
#opkald og brug af initialisering af dyreklassefunktionen
Dyr.__init __ (selv, "kat", "kødædende pattedyr")
#now cat-klasse har adgang til alle funktionerne og egenskaberne i dyreklassen
#creating the cat class object
catObj = Kat ()
katObj.Print navn()
katObj.printspecie ()

Produktion

Det "Dyr.__init __ (selv, ”kat”, ”kødædende pattedyr”) ” kald er initialiseringsfunktionen i dyreklassen.

Funktionen super ()

Python giver en indbygget super () -funktion til at arve alle egenskaberne og funktionerne i den overordnede klasse. Når vi bruger super () -funktionen, er der ingen grund til at nævne forældreklassens navn, som vi gjorde i "Dyr.__init __ (selv, "kat", "kødædende pattedyr") " men super () -funktionen peger automatisk på overordnet klasse. Lad os bruge superfunktionen.

# skaber forældreklasse
klasse Dyr:
#initialiseringsfunktion
#initilisering af dyrets navn og artstype
def __init __ (selv, navn, specie_type):
selv.navn = navn
selv.specie_type = specie_type
#a funktion til at udskrive dyrets navn
def printnavn (selv):
print ("Navnet på dyret er:", selv.navn)
#a funktion til at udskrive dyreartens type
def printspecie (selv):
print ("Typen af ​​art er:", selv.specie_type)
#oprette hundeklassen som børneklasse i dyreklassen
klasse Hund (dyr):
# bruger super () funktion
def __init __ (selv, navn, specie_type):
super().__init __ (navn, specie_type)
# nu har hundeklassen adgang til alle funktionerne og egenskaberne i dyreklassen
#creating the dog class object
dogObj = Hund ("Hund", "kødædende")
hundObj.Print navn()
hundObj.printspecie ()
#oprette katteklassen som børneklasse i dyreklassen
klasse Kat (dyr):
# initiliseringsfunktionen i katklassen
# bruger super () funktion
def __init __ (selv, navn, specie_type):
super().__init __ (navn, specie_type)
#now cat-klasse har adgang til alle funktionerne og egenskaberne i dyreklassen
#creating the cat class object
catObj = Kat ("kat", "kødædende pattedyr")
katObj.Print navn()
katObj.printspecie ()

Produktion

Lad os nu tilføje nogle flere funktioner i barneklasser. Hver klasse arver de fælles egenskaber og funktioner fra moderklassen, men underklassen kan have en ekstra klasse, der er beregnet til denne særlige klasse. Lad os nu oprette nogle ekstra egenskaber og funktioner i hunde- og katteklassen.

# skaber forældreklasse
klasse Dyr:
#initialiseringsfunktion
#initilisering af dyrets navn og artstype
def __init __ (selv, navn, specie_type):
selv.navn = navn
selv.specie_type = specie_type
#a funktion til at udskrive dyrets navn
def printnavn (selv):
print ("Dyrets navn er:", selv.navn)
#a funktion til at udskrive dyreartens type
def printspecie (selv):
print ("Typen af ​​art er:", selv.specie_type)
#oprette hundeklassen som børneklasse i dyreklassen
klasse Hund (dyr):
# bruger super () funktion
#pet name er nyligt tilføjet funktionalitet
def __init __ (selv, navn, specie_type, pet_name):
super().__init __ (navn, specie_type)
selv.pet_name = pet_name
# opretter en ny funktion
def printpetname (selv):
print ("Kæledyrsnavnet er:", selv.kælenavn)
# nu har hundeklassen adgang til alle funktionerne og egenskaberne i dyreklassen
#creating the dog class object
dogObj = Hund ("Hund", "kødædende", "Max")
hundObj.Print navn()
hundObj.printspecie ()
hundObj.printpetname ()
#oprette katteklassen som børneklasse i dyreklassen
klasse Kat (dyr):
# initiliseringsfunktionen i katklassen
# bruger super () funktion
#adding food og pet_name egenskaber
def __init __ (selv, navn, specie_type, mad, kæledyrsnavn):
super().__init __ (navn, specie_type)
selv.mad = mad
selv.pet_name = pet_name
# ny funktion for at få adgang til madoplysninger
def printfood (selv):
print ("Katten kan lide:", selv.mad)
# ny funktion til kæledyrsnavn
def printpetname (selv):
print ("Kæledyrsnavnet er:", selv.kælenavn)
#now cat-klasse har adgang til alle funktionerne og egenskaberne i dyreklassen
#creating the cat class object
catObj = Kat ("kat", "kødædende pattedyr", "Biscuit", "Daisy")
katObj.Print navn()
katObj.printspecie ()

Produktion

Funktionerne tilsidesætter

Funktionens tilsidesættelse er det vigtige koncept i arv. En funktion kaldes en tilsidesat funktion, hvis funktionens navn er det samme i overordnede og underordnede klasser, men implementeringen eller funktionaliteten af ​​funktionen er forskellig i hver klasse. Lad os se eksemplet på tilsidesat funktion i klassen Animal. I nedenstående eksempel har vi også en spisefunktion i dyreklasserne og i dets barneklasser (Hund og Kat). Funktionens navn er det samme i klasser, men implementeringen er forskellig.

# skaber forældreklasse
klasse Dyr:
def spise (selv):
print ("Alle dyr spiser mad")
#skabende objekt
animalObj = Animal ()
# opkaldsfunktion
dyrObj.spise()
# skaber hundeklasse
klasse Hund (dyr):
def spise (selv):
print ("Hunden spiser kød")
#skabende objekt
dogObj = Hund ()
# opkaldsfunktion
hundObj.spise()
klasse Kat (dyr):
def spise (selv):
print ("Katten spiser kiks og noget specielt mad")
#skabende objekt
catObj = Cat ()
# opkaldsfunktion
katObj.spise()

Produktion

Konklusion

Arv er et af de grundlæggende begreber i objektorienterede programmeringssprog. Ved at bruge arv opretter vi de underordnede klasser, som arver alle funktionerne og egenskaberne i den overordnede klasse. Arv fremmer kodeanvendelighed. Denne artikel forklarer arven i Python med eksempler.

Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...