Úvod do ovládania v Pythone
V časti Overriding in Python sa objektovo orientované programovanie trieda, ktorá je pôvodne deklarovaná, nazýva rodičovská trieda. ten deklarovaný po tomto sa nazýva podtrieda alebo podradená trieda. V technike Overriding in Python sa podtrieda poskytuje konkrétny typ implementácie, v ktorom je prvok nadradenej triedy potlačený prvkom v podtriede. Podľa tejto techniky musí byť entita deklarovaná v podtriede podobná v názve, parametri, argumentoch s nadradenou triedou. V takom prípade sa podtrieda nahradí nadradenou triedou.
Funkcia Overriding v Pythone
Hlavným typom potlačenia v pythone je nahradenie metódou. tu bude v podtriede prepísaná metóda deklarovaná v nadradenej triede. Syntaktické znázornenie potlačenia metódy je uvedené nižšie,
syntaxe:
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()
Príklad č. 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()
Výkon:
vysvetlenie:
- Vyššie uvedený program používa tri zoznamy, z ktorých dva obsahujú malé a veľké písmená, v treťom sa nachádzajú hodnoty prvočísel od 0 do 100.
- funkčnosť programu je navrhnutá tak, aby sa očakávalo, že sa vytlačia atribúty a obsah týchto zoznamov. V takom prípade sa na tento účel používajú dve rôzne triedy. Rodičovská trieda zaobchádza so všetkými abecedami zbierok, zatiaľ čo podradená trieda spracováva kolekciu prvočísel.
- Môžeme si všimnúť, že funkcia 'attribute_finder_method ()' je deklarovaná ako súčasť obidvoch tried. V nadradenej triede táto metóda uchováva spracovanie atribútov pre abecedy a v podradenej triede drží spracovanie atribútov pre prvočísla. významnou špecifikáciou je názov funkcie, ktorý je rovnaký v oboch deklarovaných triedach.
- Takže keď je objekt inštanovaný pre nadradenú triedu, potom bude tento objekt schopný iniciovať volanie funkcie pre metódu v nadradenej triede a na druhej strane, objekt inštanovaný pre podradenú triedu bude schopný iniciovať volanie funkcie pre metódu v podradenej triede, To znamená, keď 'object2. attribute_finder_method () 'sa nazýva toto volá metódu pre podradenú triedu, aj keď je prítomná rovnaká metóda ako v nadradenej triede. To teda jasne odôvodňuje nadradenie metódy podradenej triedy nad nadradenou triedou deklarovanou asimiláciou skutočnosti, že podtrieda je poskytovaná konkrétnym typom implementácie, v ktorom je prvok nadradenej triedy potlačený prvkom v podtriede.
Príklad č. 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 " )
Výkon:
vysvetlenie:
V tomto prípade je metóda display () zdedená a potlačená, čím sa opäť dosiahne koncepcia potlačenia metódy.
Pravidlá zrušenia v Pythone
- Prepísaná metóda musí byť rovnaká ako metóda uvedená v nadradenej triede
- statické metódy nemôžu byť potlačené
- Konečné metódy nemôžu byť potlačené
- Synchronizovaný modifikátor nemá žiadny vplyv na predpisy nadradenia.
záver
Pojem nadradený odráža viacnásobné implementácie tej istej triedy. tu synchronizovaný modifikátor nemá žiadny vplyv na predpisy nadradenia. Predovšetkým definuje správanie danej triedy veľmi hlboko. tieto prípady robia koncepciu prevládania veľmi významnou vo svete pythonu.
Odporúčané články
Toto je príručka pre Overriding v Pythone. Tu diskutujeme o úvodu, funkcii zrušenia a pravidlách zrušenia v Pythone. Viac informácií nájdete aj v ďalších navrhovaných článkoch -
- Funkcie Pythonu
- Prepísanie v jazyku JavaScript
- Kompilátor PHP
- Relácie v PHP
- Sprievodca statickou metódou v PHP
- Príklady statickej metódy JavaScript