Einführung in das Überschreiben in Python
Beim Überschreiben in Python, der objektorientierten Programmierung, wird die ursprünglich deklarierte Klasse als übergeordnete Klasse bezeichnet. Diejenige, die danach deklariert wird, heißt Unterklasse oder Kinderklasse. In der Overriding in Python-Technik wird der Unterklasse ein bestimmter Implementierungstyp bereitgestellt, bei dem das übergeordnete Klassenelement durch das Element in der Unterklasse überschrieben wird. Gemäß dieser Technik muss die in der Unterklasse deklarierte Entität in Name, Parameter und Argumenten der übergeordneten Klasse ähnlich sein. In diesem Fall überschreibt die Unterklasse die übergeordnete Klasse.
Die Funktion des Überschreibens in Python
Der Haupttyp des Überschreibens in Python ist das Überschreiben von Methoden. Hier wird eine in der Elternklasse deklarierte Methode in der Unterklasse überschrieben. Die Syntaxdarstellung des Überschreibens von Methoden ist unten dargestellt.
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()
Beispiel 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()
Ausgabe:
Erläuterung:
- Das obige Programm verwendet drei Listen, von denen zwei die Klein- und die Großbuchstaben enthalten, die dritte die Primzahlenwerte von 0 bis 100.
- Die Funktionalität des Programms ist so konzipiert, dass die Attribute und der Inhalt dieser Listen gedruckt werden sollen. In einem solchen Fall werden zu diesem Zweck zwei verschiedene Klassen verwendet. Die übergeordnete Klasse behandelt alle Auflistungsalphabete, während die untergeordnete Klasse die Auflistung der Primzahlen behandelt.
- Wir können feststellen, dass die Funktion 'attribute_finder_method ()' als Teil beider Klassen deklariert ist. In der übergeordneten Klasse enthält diese Methode die Attributverarbeitung für Alphabete und in der untergeordneten Klasse die Attributverarbeitung für Primzahlen. Die signifikante Angabe ist, dass der Funktionsname in beiden deklarierten Klassen gleich ist.
- Wenn also ein Objekt für eine übergeordnete Klasse instanziiert wird, kann dieses Objekt einen Funktionsaufruf für die Methode in der übergeordneten Klasse auslösen, und andererseits kann das für eine untergeordnete Klasse instanziierte Objekt einen Funktionsaufruf für die Methode in der untergeordneten Klasse auslösen . Dies bedeutet, wenn 'object2. attribute_finder_method () 'wird aufgerufen und ruft die Methode für die untergeordnete Klasse auf, auch wenn dieselbe Methode in der übergeordneten Klasse vorhanden ist. Dies rechtfertigt also eindeutig das Überschreiben der untergeordneten Klassenmethode über die deklarierte übergeordnete Klasse, indem die Tatsache assimiliert wird, dass eine bestimmte Art von Implementierung für die Unterklasse bereitgestellt wird, bei der das übergeordnete Klassenelement durch das Element in der Unterklasse überschrieben wird.
Beispiel # 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 " )
Ausgabe:
Erläuterung:
Hier wird die display () -Methode vererbt und überschrieben, wodurch wiederum das Konzept des Überschreibens von Methoden erreicht wird.
Regeln zum Überschreiben in Python
- Die überschriebene Methode muss denselben Namen haben wie die in der übergeordneten Klasse angegebene Methode
- statische Methoden können nicht überschrieben werden
- Endgültige Methoden können nicht überschrieben werden
- Der synchronisierte Modifikator hat keine Auswirkung auf die Regeln des Überschreibens.
Fazit
Das Konzept des Überschreibens spiegelt mehrere Implementierungen derselben Klasse wider. hier hat der synchronisierte Modifikator keine Auswirkung auf die Übersteuerungsregeln. Früher definiert es das Verhalten der beteiligten Klasse sehr tief. Diese Fälle machen das Konzept des Überschreibens zu einem sehr wichtigen in der Python-Welt.
Empfohlene Artikel
Dies ist eine Anleitung zum Überschreiben in Python. Hier diskutieren wir die Einführung, die Funktion des Überschreibens und die Regeln des Überschreibens in Python. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.
- Python-Funktionen
- Überschreiben in JavaScript
- PHP Compiler
- Sitzungen in PHP
- Anleitung zur statischen Methode in PHP
- Beispiele für statische JavaScript-Methoden