Prevladavanje u Pythonu - Funkcija i pravila poništavanja

Sadržaj:

Anonim

Uvod u prevladavanje u Pythonu

U Overriding u Python-u, objektno orijentirano programiranje, klasa koja se u početku deklarira naziva se nadređena klasa. onaj koji je proglašen nakon toga naziva se potklasa ili podređena klasa. U tehnici Overriding u Pythonu, podrazredu se pruža posebna vrsta implementacije u kojoj je nadređeni element elementa nadjačan elementom podklase. Prema ovoj tehnici entitet deklariran u podrazredu mora biti sličan u nazivu, parametru, argumentima s nadređenom klasom. Tako da se u takvom slučaju kaže da podklasa nadjačava nadređenu klasu.

Funkcija Overriding u Pythonu

Glavna vrsta prevladavanja u python-u je metoda overriding. ovdje će metoda deklarirana u roditeljskoj klasi nadjačati u podrazredu. Sintaksualni prikaz poništavanja metoda prikazan je dolje,

Sintaksa:

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

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

Izlaz:

Obrazloženje:

  • Gornji program koristi tri popisa, od kojih su dva s malim i velikim slovima, a treća sadrži vrijednosti najvećeg broja od 0 do 100.
  • funkcionalnost programa dizajnirana je na takav način da se očekuje da se atributi i sadržaj ovih popisa ispisuju. U tom se slučaju u ove svrhe koriste dvije različite klase. Roditeljska klasa obrađuje sve abecede zbirke dok dječja klasa obrađuje zbirku pravih brojeva.
  • Možemo primijetiti da je funkcija 'attribute_finder_method ()' deklarirana kao dio obje klase.u roditeljskoj klasi ova metoda drži obradu atributa za abecede, a u podređenoj klasi drži obradu atributa za jednostavne brojeve. značajna specifikacija je da je naziv funkcije isti u obje deklarirane klase.
  • Dakle, kada je objekt instanciran za roditeljsku klasu, tada će taj objekt biti sposoban pokrenuti poziv funkcije za metodu u roditeljskoj klasi, a s druge strane, objekt instanciran za podređenu klasu moći će pokrenuti poziv funkcije za metodu u podređenoj klasi, To znači kad 'objekt2. attribute_finder_method () 'se zove ovo poziva metodu za podređenu klasu čak i ako postoji ista metoda u roditeljskoj klasi. Dakle, ovo jasno opravdava prevladavanje metode nadređene klase nad nadređenom klasom deklarirano asimilacijom činjenice da se podrazredu daje određena vrsta implementacije u kojoj nadređeni element klase prevladava element u potklasi.

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

Izlaz:

Obrazloženje:

Ovdje je metoda display () naslijeđena i nadjačana čime se ponovno postiže koncept nadjačavanja metode.

Pravila preglasavanja u Pythonu

  • Prevaziđena metoda mora imati isti naziv kao i metoda navedena u roditeljskoj klasi
  • statičke metode se ne mogu nadjačati
  • Konačne metode se ne mogu nadjačati
  • Sinkronizirani modifikator ne utječe na propise preklapanja.

Zaključak

Koncept prevladavanja odražava višestruke implementacije iste klase. ovdje sinkronizirani modifikator ne utječe na propise preklapanja. Prije toga to duboko definira ponašanje uključene klase. Ovi slučajevi čine koncept prevladavanja vrlo značajan u svijetu pytona.

Preporučeni članci

Ovo je vodič za Prevladavanje u Pythonu. Ovdje ćemo raspravljati o uvodu, funkciji preglasavanja i pravilima preglasavanja na Pythonu. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Značajke Pythona
  2. Poništavanje JavaScript-a
  3. PHP prevodilac
  4. Sjednice u PHP-u
  5. Vodič za statičku metodu u PHP-u
  6. Primjeri JavaScript statičke metode