Python arv

Python arv

Python er et objektorientert programmeringsspråk. På et objektorientert programmeringsspråk lager vi klassene og utfører den tiltenkte funksjonaliteten. Arv er det grunnleggende trekk ved objektorienterte programmeringsspråk. Arv kan defineres som en klasse mulighet til å arve alle funksjonene og egenskapene til en annen klasse. Arv tillater i hovedsak en å utvide egenskapene til en eksisterende klasse. Arv utnyttes med de to hovedkonseptene:

  1. Foreldreklasse eller baseklasse
  2. Barneklasse eller avledet klasse

Foreldreklassen er klassen som gjør at andre klasser kan arves fra. Det kalles også baseklassen. Barnklassen eller avledet klasse er den klassen som arver alle egenskapene og funksjonene til en annen klasse. Arv fremmer flere fordeler, jeg.e., Det er representasjonen av den virkelige arvefenomenet. Det oppmuntrer til kodeens gjenbrukbarhet. Hvis en funksjon er definert i en klasse, kan den andre klassen arve denne klassen og bruke alle eksisterende funksjoner. Det er ikke nødvendig å skrive den samme koden igjen og igjen for å utføre lignende oppgaver. Arv brukes på flere nivåer. For eksempel, hvis klasse B er arvet fra A og klasse C er arvet fra klasse B, har klasse C alle egenskapene til klasse B og så vel som klasse A. Arvens syntaks er som følger:

Klassen Parentclass:
Implementeringsdetaljer om foreldreklassen
Klassebarn:
Implementeringsdetaljer om barneklassen

Selv om barneklassen har tilgang til alle funksjonene og funksjonene i foreldreklassen, kan den imidlertid legge til sine nye funksjoner og funksjoner også.

Denne artikkelen beskriver og dekker alle aspektene ved Python -arv.

Arveimplementering i Python

Arv kan brukes i mange situasjoner. La oss anta at du bygger et programvaresystem for et universitet. Det kan bestå av flere interessenter som studenter, lærere, ansatte osv. Så hver person har et navn, alder, e -post og andre vanlige egenskaper. Det er ikke nødvendig å erklære alle egenskapene i hver klasse separat. Vi kan lage en personklasse, og alle interessenters klasser kan arve alle de vanlige egenskapene og funksjonene fra personklassen. I dette tilfellet er det ikke nødvendig å skrive de vanlige egenskapene i hver klasse igjen og igjen. Tilsvarende kan vi vurdere en dyreklasse. Det er hundrevis av typer dyr i denne verden. Alle dyrene spiser, sover og har noen arter også. Dette konseptet kan også implementeres ved hjelp av arv.

La oss betrakte dyret som en superklasse og implementere arven. I det gitte eksemplet har vi laget en dyreklasse. Dyreklassen er foreldreklassen. Dessuten har vi laget hunden, og katteklasser som arver egenskapene og funksjonene til dyreklassen. Pass -nøkkelordet brukes i barneklassen, når vi ikke trenger å implementere noen utvidet funksjonalitet i barneklassen.

#skapende foreldreklasse
Klassedyr:
#initialiseringsfunksjon
#initilisering av dyrenavnet, og spesie -typen
def __init __ (selv, navn, spesie_type):
selv-.Navn = Navn
selv-.specie_type = specie_type
#a -funksjon for å skrive ut dyrenavnet
def printname (self):
trykk ("Navnet på dyret er:", selv.Navn)
#a -funksjon for å skrive ut dyrespesialtypen
def Printspecie (selv):
trykk ("typen spesie er:", selv.specie_type)
#Creating the Dog Class som barneklasse av dyreklasse
Klassehund (dyr):
# Ingen utvidelse eller modifisering
sende
#Now Dog Class har tilgang til alle funksjonene og egenskapene til dyreklasse
#Creating the Dog Class -objektet
dogobj = hund ("hund", "rovdyr")
Dogobj.PrintName ()
Dogobj.Printspecie ()
#Creating the Cat Class som barneklasse av dyreklasse
Klassekatt (dyr):
#Initiliseringsfunksjonen til CAT -klassen
def __init __ (selv):
#kalling og bruk av dyreklassen initiliseringsfunksjon
Dyr.__init __ (selv, "katt", "kjøttetende pattedyr")
#Now Cat Class har tilgang til alle funksjonene og egenskapene til dyreklasse
#Creating the Cat Class -objektet
catobj = katt ()
Catobj.PrintName ()
Catobj.Printspecie ()

Produksjon

De "Dyr.__init __ (selv, ”katt”, ”kjøttetende pattedyr”) ”” samtalen er initialiseringsfunksjonen til dyreklassen.

Super () -funksjonen

Python gir en innebygd super () -funksjon for å arve alle egenskapene og funksjonene til foreldreklassen. Når vi bruker Super () -funksjonen, er det ikke nødvendig å nevne navnet på foreldreklassen som vi gjorde i "Dyr.__init __ (selv, ”katt”, ”kjøttetende pattedyr”) ”” Men super () -funksjonen peker automatisk på foreldreklassen. La oss bruke superfunksjonen.

#skapende foreldreklasse
Klassedyr:
#initialiseringsfunksjon
#initilisering av dyrenavnet, og spesie -typen
def __init __ (selv, navn, spesie_type):
selv-.Navn = Navn
selv-.specie_type = specie_type
#a -funksjon for å skrive ut dyrenavnet
def printname (self):
trykk ("Navnet på dyret er:", selv.Navn)
#a -funksjon for å skrive ut dyrespesialtypen
def Printspecie (selv):
trykk ("typen spesie er:", selv.specie_type)
#Creating the Dog Class som barneklasse av dyreklasse
Klassehund (dyr):
#bruk super () -funksjon
def __init __ (selv, navn, spesie_type):
super().__init __ (navn, specie_type)
#Now Dog Class har tilgang til alle funksjonene og egenskapene til dyreklasse
#Creating the Dog Class -objektet
dogobj = hund ("hund", "rovdyr")
Dogobj.PrintName ()
Dogobj.Printspecie ()
#Creating the Cat Class som barneklasse av dyreklasse
Klassekatt (dyr):
#Initiliseringsfunksjonen til CAT -klassen
#bruk super () -funksjon
def __init __ (selv, navn, spesie_type):
super().__init __ (navn, specie_type)
#Now Cat Class har tilgang til alle funksjonene og egenskapene til dyreklasse
#Creating the Cat Class -objektet
catobj = katt ("katt", "kjøttetende pattedyr")
Catobj.PrintName ()
Catobj.Printspecie ()

Produksjon

La oss nå legge til noen flere funksjonaliteter i barneklassene. Hver klasse arver de vanlige egenskapene og funksjonene fra foreldreklassen, men barneklassen kan ha en ekstra klasse som er beregnet på akkurat denne klassen. La oss nå lage noen ekstra egenskaper og funksjoner i hunden, og katteklasse.

#skapende foreldreklasse
Klassedyr:
#initialiseringsfunksjon
#initilisering av dyrenavnet, og spesie -typen
def __init __ (selv, navn, spesie_type):
selv-.Navn = Navn
selv-.specie_type = specie_type
#a -funksjon for å skrive ut dyrenavnet
def printname (self):
trykk ("Navnet på dyret er:", selv.Navn)
#a -funksjon for å skrive ut dyrespesialtypen
def Printspecie (selv):
trykk ("typen spesie er:", selv.specie_type)
#Creating the Dog Class som barneklasse av dyreklasse
Klassehund (dyr):
#bruk super () -funksjon
#PET -navn er nylig lagt funksjonalitet
def __init __ (selv, navn, specie_type, pet_name):
super().__init __ (navn, specie_type)
selv-.pet_name = pet_name
#Creating en ny funksjon
def printPetName (selv):
trykk ("kjæledyrnavnet er:", selv.kjæledyrnavn)
#Now Dog Class har tilgang til alle funksjonene og egenskapene til dyreklasse
#Creating the Dog Class -objektet
dogobj = hund ("hund", "rovdyr", "maks")
Dogobj.PrintName ()
Dogobj.Printspecie ()
Dogobj.printPetName ()
#Creating the Cat Class som barneklasse av dyreklasse
Klassekatt (dyr):
#Initiliseringsfunksjonen til CAT -klassen
#bruk super () -funksjon
#Legging av mat- og pet_name -egenskaper
def __init __ (selv, navn, specie_type, mat, pet_name):
super().__init __ (navn, specie_type)
selv-.mat = mat
selv-.pet_name = pet_name
#Ny funksjon for å få tilgang til matinfo
def printfood (selv):
trykk ("Katten liker:", selv.mat)
#Ny funksjon for kjæledyrnavn
def printPetName (selv):
trykk ("kjæledyrnavnet er:", selv.kjæledyrnavn)
#Now Cat Class har tilgang til alle funksjonene og egenskapene til dyreklasse
#Creating the Cat Class -objektet
catobj = katt ("katt", "kjøttetende pattedyr", "kjeks", "Daisy")
Catobj.PrintName ()
Catobj.Printspecie ()

Produksjon

Funksjonene som overstyrer

Funksjonen som overstyrer er det viktige konseptet i arv. En funksjon kalles en overstyrt funksjon hvis navnet på funksjonen er det samme i foreldre- og barneklasser, men implementeringen eller funksjonaliteten til funksjonen er forskjellig i hver klasse. La oss se eksemplet med overstyrt funksjon i dyreklassen. I eksemplet nedenfor har vi en EAT -funksjon i dyreklassene og i barneklasser (hund og katt) også. Navnet på funksjonen er det samme i klassene, men implementeringen er annerledes.

#skapende foreldreklasse
Klassedyr:
Def Eat (Self):
trykk ("Alle dyrene spiser mat")
#skapende objekt
AnimalObj = Animal ()
#kallingsfunksjon
AnimalObj.spise()
#skapende hundeklasse
Klassehund (dyr):
Def Eat (Self):
trykk ("Hunden spiser kjøtt")
#skapende objekt
dogobj = hund ()
#kallingsfunksjon
Dogobj.spise()
Klassekatt (dyr):
Def Eat (Self):
trykk ("Katten spiser kjeks og litt spesiell mat")
#skapende objekt
catobj = katt ()
#kallingsfunksjon
Catobj.spise()

Produksjon

Konklusjon

Arv er et av de grunnleggende begrepene for objektorienterte programmeringsspråk. Ved å bruke arv, oppretter vi barneklasser som arver alle funksjonene og egenskapene til foreldreklassen. Arv fremmer koden gjenbrukbarhet. Denne artikkelen forklarer arven i Python med eksempler.