Bevezetés a Python felülbírálásába

A Python objektum-orientált programozás felülbírálása során az eredetileg deklarált osztályt szülő osztálynak nevezzük. az ezt követően bejelentett osztályt alosztálynak vagy gyermekosztálynak hívják. A felülíró Python technikában az alosztály egy olyan megvalósítástípust biztosít, amelyben a szülő osztály elemét az alosztály elem felülbírálja. E módszer szerint az alosztályban deklarált entitásnak névvel, paraméterrel és érveléssel kell rendelkeznie a szülőosztályhoz hasonlóan. Így az alosztályról azt állítják, hogy felülbírálja a szülőosztályt.

A felülbírálás funkciója Pythonban

A pythonban a felülbírálás fő típusa a módszer felülbírálása. itt a szülőosztályban deklarált módszer felülbírálásra kerül az alosztályban. Az alábbiakban a módszer felülbírálásának szintaxuális ábrázolása látható,

Szintaxis:

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

1. példa

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

Kimenet:

Magyarázat:

  • A fenti program három listát használ, amelyek közül kettő tartalmazza a kis- és nagybetűket, a harmadik a 0–100 prímszámot tartalmazza.
  • a program funkcionalitását úgy tervezték meg, hogy várhatóan kinyomtassa ezen listák attribútumait és tartalmát. Ebben az esetben két különböző osztályt használnak erre a célra. A szülő osztály kezeli az összes gyűjtő ábécét, míg a gyermek osztály kezeli az első számok gyűjteményét.
  • Megállapíthatjuk, hogy az 'attribute_finder_method ()' függvény mindkét osztály részeként deklarálódik. A szülőosztályban ez a módszer az ábécé attribútumfeldolgozását, a gyermekosztályban pedig az elsődleges számok attribútumfeldolgozását tartja. a szignifikáns specifikáció az, hogy a függvény neve mindkét deklarált osztályban azonos.
  • Tehát, ha egy objektumot egy szülőosztályra inicializálnak, akkor ez az objektum képes lesz a funkcióhívást kezdeményezni a módszerre a szülőosztályban, másrészt a gyermekosztály számára létrehozott objektum képes lesz arra, hogy kezdeményezzen funkcióhívást a módszerre gyermekosztályban . Ez azt jelenti, amikor 'object2. attribute_finder_method () ', ezt úgy hívják, hogy a módszer a gyermek osztályra történjen, még akkor is, ha ugyanaz a módszer jelenik meg a szülő osztályban. Tehát ez egyértelműen igazolja a gyermekosztály-módszer felülbírálását a szülőosztály felett azáltal, hogy asszimilálják azt a tényt, hogy az alosztály egy bizonyos típusú megvalósítás, amelyben a szülőosztály elemét az alosztály elem felülbírálja.

2. példa

#!/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 " )

Kimenet:

Magyarázat:

Itt a display () metódust örököljük és felülbíráljuk, ami ismét megvalósítja a módszer felülbírálásának koncepcióját.

A Pythonban érvényes felülírási szabályok

  • A felülbírált módszernek meg kell egyeznie a szülőosztályban megadott módszerrel
  • a statikus módszereket nem szabad felülbírálni
  • A végső módszereket nem szabad felülbírálni
  • A szinkronizált módosítónak nincs hatása a felülbírálás szabályaira.

Következtetés

A felülbírálás fogalma ugyanazon osztály több megvalósítását tükrözi. itt a szinkronizált módosítónak nincs következménye a felülbírálás szabályaira. Korábban nagyon mélyen meghatározza az érintett osztály viselkedését. ezek az esetek a felülbírálás fogalmát nagyon jelentőssé teszik a python világában.

Ajánlott cikkek

Ez egy útmutató a Pythonban levő felülbíráláshoz. Itt tárgyaljuk a Python bevezetését, az felülbírálás funkcióját és az felülbírálás szabályait. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Python szolgáltatások
  2. A JavaScript felülírása
  3. PHP fordító
  4. Ülések a PHP-ben
  5. Útmutató a statikus módszerhez a PHP-ben
  6. Példák a JavaScript statikus módszerére

Kategória: