Overriding i Python - Funksjon og regler for overstyring

Innholdsfortegnelse:

Anonim

Introduksjon til Overriding in Python

I Overriding in Python, den objektorienterte programmeringen, kalles klassen som først er erklært foreldreklassen. den som er erklært etter dette kalles underklasse eller barneklasse. I teknikken Overriding in Python er underklassen gitt en spesiell type implementering der overordnede klasseelementer blir tilsidesatt av elementet i underklassen. I henhold til denne teknikken må enheten som er erklært i underklassen være lik navn, parameter, argumenter med overordnet klasse. Så i så fall sies underklassen å overstyre foreldreklassen.

Funksjonen til Overriding in Python

Den viktigste typen overstyring i python er metodeoverskridelse. her vil en metode som er erklært i foreldreklassen bli tilsidesatt i underklassen. Syntaksuell representasjon av overstyring av metoden er representert nedenfor,

syntaks:

class parent_class:
def overriding_method(self):
class Child_class:
def overriden_method(self):
obj1 = parent_class()
obj2 = Child_class()
obj1.overriding_method()
obj2.overriden_method()

Eksempel 1

class parent_class
def __init__(self, Lower_Case, Upper_Case):
self.Lower_Case = Lower_Case
self.Upper_Case = Upper_Case
def attribute_finder_method(self):
print('- - - - - - Overriding method output - - - - -')
print(' - - - - PRINT ON ALPHABETS - - - - - ')
print(' Collection used for variable1 : ', type(Lower_Case))
print(' Collection used for variable2 : ', type(Upper_Case))
print(' Lower case alphabets : ', len(Lower_Case), '--- Values -->', Lower_Case)
print(' Upper case alphabets : ', len(Upper_Case), '--- Values -->', Upper_Case)
print(' ')
print(' ')
print(' ')
class child_class:
def __init__(self, Prime_Numbers):
self.Prime_Numbers = Prime_Numbers
def attribute_finder_method(self):
print('- - - - - - Overriden method output - - - - -')
print(' - - - - PRINT ON PRIME NUMBERS - - - - - ')
print(' Collection used for variable3 : ', type(Prime_Numbers))
print(' Lower case alphabets : ', len(Prime_Numbers), '--- Values -->', Prime_Numbers)
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) Prime_Numbers = ( ' 1 ', ' 3 ', ' 5 ', ' 7 ', ' 11 ', ' 13 ', ' 17 ', ' 19 ', ' 29 ', ' 31 ', ' 37 ', ' 41 ', ' 43 ', ' 47 ', ' 53 ', ' 59 ', ' 61 ', ' 67 ', ' 71 ', ' 73 ', ' 79 ', ' 83 ', ' 89 ', ' 97 ') object1 = parent_class(Lower_Case, Upper_Case)
object1.attribute_finder_method()
object2 = child_class(Prime_Numbers)
object2.attribute_finder_method()

Produksjon:

Forklaring:

  • Programmet over bruker tre lister hvorav to har små bokstaver og store bokstaver, den tredje inneholder hovedtallverdiene fra 0 til 100.
  • funksjonaliteten til programmet er designet på en slik måte at attributtene og innholdet i disse listene forventes å bli skrevet ut. I et slikt tilfelle brukes to forskjellige klasser til dette formålet. Foreldreklassen håndterer alle samlingsalfabetene mens barneklassen håndterer primtallssamlingen.
  • Vi kan merke at funksjonen 'attributt_finder_metode ()' er erklært som en del av begge klassene. I foreldreklassen har denne metoden attributtbehandlingen for alfabeter, og i barneklassen holder den attributtbehandlingen for primtall. den betydelige spesifikasjonen er at funksjonsnavnet er det samme i begge deklarerte klasser.
  • Så når et objekt blir instantisert for foreldreklasse, vil dette objektet være i stand til å starte funksjonskall for metoden i foreldreklassen, og på en annen side, vil objektet som er instantivert for barneklasse være i stand til å starte funksjonskall for metoden i barneklasse . Dette betyr når 'objekt2. attribute_finder_method () 'kalles dette kaller metoden for barneklassen selv i nærvær av samme metode i foreldreklassen. Så dette rettferdiggjør helt klart overstyringen av barneklasse-metoden over foreldreklassen som er erklært ved å assimilere det faktum at underklasse er gitt en bestemt type implementering der foreldreklasseelementet blir tilsidesatt av elementet i underklassen.

Eksempel 2

#!/usr/bin/evn python
# Define a class as 'Individual' #
class Individual:
# Constructor#1 #
def __init__(self):
self.Student_Name = input( " Enter Name of the student : " )
self.Student_age = input( " Enter age of the student : " )
self.Student_gender = input( " Enter gender of the student : " )
# Method
def display(self):
print( " \n \n Enter Name of the student : ", self.Student_Name )
print( " Enter age of the student : ", self.Student_age )
print( " Enter gender of the student : ", self.Student_gender )
# Define a class as 'Evaluated_Marks' #
class Evaluated_Marks:
# Constructor#2 #
def __init__(self):
self.stuClass = input( " Class of the student : " )
print( " Evaluated Marks per subject : " )
self.literature = int(input( " Mark in Literature subject : " ))
self.math = int(input( " Mark in Math subject : " ))
self.biology = int(input( " Mark in Biology subject : " ))
self.physics = int(input( " Mark in Physics subject : " ))
# Method
def display(self):
print( " Study in : ", self.stuClass)
print( " Total Evaluated_Marks : ", self.literature + self.math + self.biology + self.physics)
class student(Individual, Evaluated_Marks):
def __init__(self):
# Call ' Individual ' super class constructor
Individual.__init__(self)
# Call ' Evaluated_Marks ' superclass constructor
Evaluated_Marks.__init__(self)
def result(self):
# Call method of class 'Individual'
Individual.display(self)
# Call method of class 'Evaluated_Marks'
Evaluated_Marks.display(self)
# Objects of class 'student' #
Student1 = student()
Student2 = student()
print(" ")
print( "Note: The instances get initialized with the given values Successfully " )

Produksjon:

Forklaring:

Her blir display () -metoden arvet og overstyrt, noe som igjen oppnår begrepet metodeoverskridelse.

Regler for å overstyre i Python

  • Metoden overstyres må ha samme navn som metoden som er spesifisert i foreldreklassen
  • statiske metoder kan ikke overstyres
  • Endelige metoder kan ikke overstyres
  • Den synkroniserte modifisereren har ingen konsekvenser for regelverket om overstyring.

Konklusjon

Konseptet med å overstyre reflekterer flere implementeringer av samme klasse. her har den synkroniserte modifikatoren ingen konsekvenser for regelverket for overstyring. Mer tidligere definerer den oppførselen til den involverte klassen veldig dypt. disse tilfellene gjør at begrepet overstyring er veldig viktig i pytonverdenen.

Anbefalte artikler

Dette er en guide til Overriding in Python. Her diskuterer vi introduksjonen, funksjonen til å overstyre og reglene for overstyring i Python. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–

  1. Python-funksjoner
  2. Overstyrer i JavaScript
  3. PHP-kompilator
  4. Økter i PHP
  5. Veiledning for statisk metode i PHP
  6. Eksempler på JavaScript Static Method