Johdatus ohittamiseen Pythonissa

Kohdassa Ohittaminen Pythonissa, olio-ohjelmoidussa ohjelmoinnissa, aluksi julistettua luokkaa kutsutaan pääluokkaksi. tämän jälkeen ilmoitettua luokkaa kutsutaan alaluokkaksi tai lapsiluokkaksi. Ohittaessa Python-tekniikassa alaluokka tarjotaan tietyn tyyppinen toteutus, jossa alaluokan elementti korvaa vanhemman luokan elementin. Tämän tekniikan mukaan alaluokassa ilmoitetun kokonaisuuden on oltava nimessä, parametrissa ja argumenteissa samanlainen kuin emo luokka. Tällöin alaluokan sanotaan ohittavan emo luokan.

Ohituksen tehtävä Pythonissa

Pythonin tärkein ohitusmenetelmä on menetelmän ohittaminen. tässä vanhemmaluokassa ilmoitettu menetelmä ohitetaan alaluokassa. Menetelmän ohittamisen syntaksiesitys on esitetty alla,

Syntaksi:

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()

Esimerkki # 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()

lähtö:

Selitys:

  • Yllä oleva ohjelma käyttää kolmea luetteloa, joista kahdessa on pienet ja isot kirjaimet, kolmannessa alkuluvun arvot ovat 0 - 100.
  • ohjelman toiminnallisuus on suunniteltu siten, että näiden luetteloiden määritteiden ja sisällön odotetaan tulostavan. Tällöin tähän tarkoitukseen käytetään kahta eri luokkaa. Vanhemmaluokka käsittelee kaikki kokoelma-aakkoset, kun taas lastenluokka käsittelee alkunumeroiden kokoelman.
  • Voimme huomata, että funktio 'attribute_finder_method ()' on ilmoitettu osaksi molempia luokkia. Vanhemmassa luokassa tämä menetelmä pitää aakkosten attribuutin käsittelyä ja lapsiluokassa se hallitsee alkulukujen ominaisuuksien käsittelyä. merkitsevä eritelmä on, että funktion nimi on sama molemmissa ilmoitetuissa luokissa.
  • Joten kun objekti älytetään vanhemmaluokalle, silloin tämä objekti kykenee käynnistämään funktion kutsun menetelmälle vanhemmaluokassa ja toisaalta lasten luokalle annettava objekti kykenee aloittamaan funktion kutsun menetelmälle lasten luokassa. . Tämä tarkoittaa, kun 'object2. attribute_finder_method () 'kutsutaan tästä kutsutaan lasten luokan menetelmää edes silloin, kun sama menetelmä on läsnä vanhemman luokassa. Joten tämä oikeuttaa selvästi lastenluokkamenetelmän syrjäyttämisen vanhemmaluokkaan verrattuna rinnastamalla tosiasia, että alaluokalle tarjotaan tietyn tyyppinen toteutus, jossa alaluokan elementti korvaa vanhemman luokan elementin.

Esimerkki 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 " )

lähtö:

Selitys:

Tällöin näyttö () -menetelmä on peritty ja ohitettu, mikä saavuttaa jälleen menetelmän ohittamisen käsitteen.

Ohittamisen säännöt Pythonissa

  • Ohitetun menetelmän on oltava sama nimi kuin pääluokassa määritetty menetelmä
  • staattisia menetelmiä ei voida ohittaa
  • Lopullisia menetelmiä ei voida ohittaa
  • Synkronoidulla modifikaattorilla ei ole vaikutusta ohittamisen säännöksiin.

johtopäätös

Ohituksen käsite heijastaa saman luokan useita toteutuksia. tässä synkronoidulla modifikaattorilla ei ole vaikutusta ohittamisen säännöksiin. Ennemmin se määrittelee osallistuvan luokan käyttäytymisen erittäin syvästi. nämä tapaukset tekevät ohittamisen käsitteestä erittäin merkittävän käsitteen python-maailmassa.

Suositellut artikkelit

Tämä on opas ohittamiseen Pythonissa. Tässä keskustellaan Pythonin johdannosta, ohituksen toiminnasta ja ohitussäännöistä. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Python-ominaisuudet
  2. Ohittaminen JavaScriptissä
  3. PHP-kääntäjä
  4. Istunnot PHP: ssä
  5. Opas staattiseen menetelmään PHP: ssä
  6. Esimerkkejä JavaScriptin staattisesta menetelmästä