Introduktion til tilsidesættelse i Python
I Overriding i Python kaldes den objektorienterede programmering, den klasse, der oprindeligt er erklæret, overordnet klasse. den derpå erklærede kaldes underklassen eller barneklassen. I teknikken Overriding in Python tilvejebringes underklassen en bestemt type implementering, hvor overordnede klasselementer tilsidesættes af elementet i underklassen. I henhold til denne teknik skal den enhed, der er erklæret i underklassen, være den samme i navn, parameter, argumenter med overordnet klasse. Så i sådanne tilfælde siges underklassen at tilsidesætte overordnet klasse.
Funktionen af Overriding i Python
Den vigtigste type tilsidesættelse i python er metodeoverskridelse. her vil en metode, der er erklæret i forældreklassen, tilsidesættes i underklassen. Syntaksuel repræsentation af metodeoverskridelse er repræsenteret 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()
Produktion:
Forklaring:
- Ovenstående program bruger tre lister to blandt dem med små bogstaver og store bogstaver, den tredje indeholder primtalværdierne fra 0 til 100.
- programmets funktionalitet er designet på en sådan måde, at attributterne og indholdet af disse lister forventes at blive udskrevet. I et sådant tilfælde anvendes to forskellige klasser til dette formål. Forældreklassen håndterer alle samlealfabeter, mens barneklassen håndterer samlingen af primtall.
- Vi kan bemærke, at funktionen 'attribute_finder_method ()' er deklareret som en del af begge klasser. I den overordnede klasse indeholder denne metode attributbehandlingen for alfabeter, og i den underordnede klasse holder den attributbehandlingen for primtal. den markante specifikation er funktionsnavnet det samme i begge deklarerede klasser.
- Så når et objekt er instantiseret til forældreklasse, vil dette objekt være i stand til at starte funktionskald for metoden i forældreklassen, og på en anden side vil objektet, der er instantieret til barneklasse, være i stand til at starte funktionskald for metoden i barneklasse . Dette betyder, når 'objekt2. attribute_finder_method () 'kaldes dette kalder metoden for underklassen, selv i nærvær af den samme metode i forældreklassen. Så dette retfærdiggør klart overstyringen af metodeklasse-metoden over den overordnede klasse, der er erklæret ved at assimilere det faktum, at underklasse er tilvejebragt en bestemt type implementering, hvor moderklasseelementet tilsidesættes af 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 " )
Produktion:
Forklaring:
Her er display () -metoden arvet og tilsidesat, hvilket igen opnår konceptet med metodeoverskridelse.
Regler for tilsidesættelse i Python
- Den tilsidesatte metode skal være det samme navn som den metode, der er angivet i overordnet klasse
- statiske metoder kan ikke tilsidesættes
- Endelige metoder kan ikke tilsidesættes
- Den synkroniserede ændrer har ingen konsekvenser for reglerne om tilsidesættelse.
Konklusion
Konceptet med tilsidesættelse afspejler flere implementeringer af samme klasse. her har den synkroniserede ændrer ingen konsekvenser for reglerne om tilsidesættelse. Mere tidligere definerer den den involverede klasses adfærd meget dybt. disse sager gør konceptet om tilsidesættelse af en meget markant i pythonverdenen.
Anbefalede artikler
Dette er en guide til tilsidesættelse i Python. Her diskuterer vi introduktionen, funktion af tilsidesættelse og reglerne for tilsidesættelse i Python. Du kan også gennemgå vores andre foreslåede artikler for at lære mere–
- Python-funktioner
- Overskydende i JavaScript
- PHP Compiler
- Samlinger i PHP
- Vejledning til statisk metode i PHP
- Eksempler på JavaScript-statisk metode