Övervägande i Python - Funktion och regler för åsidosättande

Innehållsförteckning:

Anonim

Introduktion till Overriding i Python

I Overriding in Python kallas den objektorienterade programmeringen, klassen som initialt förklaras moderklassen. den som förklaras efter detta kallas underklassen eller barnklassen. I tekniken Overriding in Python tillhandahålls underklassen en viss typ av implementering i vilken moderklasselementet åsidosätts av elementet i underklassen. Enligt denna teknik måste den enhet som deklareras i underklassen vara liknande i namn, parameter, argument med föräldraklassen. Så i så fall sägs underklassen åsidosätta överordnadsklassen.

Funktionen för Överridande i Python

Den huvudsakliga typen av åsidosättande i python är metodöverskridande. här kommer en metod som förklaras i förälderklassen att åsidosättas i underklassen. Syntaxuell representation av åsidosättande av metod representeras nedan,

Syntax:

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

Exempel 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:

Förklaring:

  • Ovanstående program använder tre listor två bland dem som innehåller små och stora bokstäver, den tredje innehåller primtal med värden från 0 till 100.
  • programmets funktionalitet är utformad på ett sådant sätt att egenskaperna och innehållet i dessa listor förväntas skrivas ut. I ett sådant fall används två olika klasser för detta ändamål. Förälderklassen hanterar alla samlingens alfabet medan barnklassen hanterar primnummersamlingen.
  • Vi kan märka att funktionen 'attribut_finder_method ()' deklareras som en del av båda klasserna. I förälderklassen innehåller denna metod attributbearbetningen för alfabet och i barnklassen har den attributbehandlingen för primtal. den signifikanta specifikationen är att funktionsnamnet är detsamma i båda deklarerade klasserna.
  • Så när ett objekt instanseras för förälderklassen kommer detta objekt att kunna initiera funktionssamtal för metoden i förälderklassen och å andra sidan kommer objektet som instanseras för barnklass att kunna initiera funktionssamtal för metoden i barnklass . Detta betyder när 'object2. attribute_finder_method () 'kallas detta kallar metoden för barnklassen även i närvaro av samma metod i förälderklassen. Så detta motiverar helt klart åsidosättandet av metod för barnklass över föräldraklassen som förklaras genom att man assimilerar det faktum att underklass tillhandahålls en viss typ av implementering där moderklassen elementet åsidosätts av elementet i underklassen.

Exempel 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:

Förklaring:

Här ärvs och () metoden ärvs och åsidosatt vilket återigen uppnår begreppet åsidosättande av metod.

Regler för åsidosättande i Python

  • Den åsidosatta metoden måste ha samma namn som den metod som anges i föräldraklassen
  • statiska metoder kan inte åsidosättas
  • Slutliga metoder kan inte åsidosättas
  • Den synkroniserade modifieraren har ingen konsekvens på reglerna om åsidosättande.

Slutsats

Begreppet övervägande återspeglar flera implementationer av samma klass. här har den synkroniserade modifieraren ingen konsekvens på reglerna om åsidosättande. Mer tidigare definierar den den involverade klassens beteende mycket djupt. dessa fall gör konceptet att åsidosätta ett mycket betydelsefullt i pytonvärlden.

Rekommenderade artiklar

Detta är en guide till Överbestyrning i Python. Här diskuterar vi introduktionen, funktionen för överridning och reglerna för överrätning i Python. Du kan också gå igenom våra andra artiklar som föreslås för att lära dig mer–

  1. Python-funktioner
  2. Överbryter i JavaScript
  3. PHP Compiler
  4. Sessioner i PHP
  5. Guide till statisk metod i PHP
  6. Exempel på JavaScript-statisk metod