Повишаване в Python - Функция и правила за отмяна

Съдържание:

Anonim

Въведение в Overriding в Python

В Overriding в Python, обектно-ориентираното програмиране, класът, който е деклариран първоначално, се нарича родителски клас. този, деклариран след това, се нарича подклас или детски клас. В техниката Overriding в Python, подкласът е осигурен особен тип реализация, в който елементът на родителския клас е презаписан от елемента в подкласа. Съгласно тази техника субектът, деклариран в подклас, трябва да бъде сходен по име, параметър, аргументи с родителския class.so в такъв случай се казва, че подкласът отменя родителския клас.

Функцията на Overriding в Python

Основният тип отменяне в python е метод overriding. тук метод, деклариран в родителския клас, ще бъде отменен в подклас. Синтаксиалното представяне на метода на отмяна е представено по-долу,

Синтаксис:

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

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

изход:

Обяснение:

  • Горната програма използва три списъка, два от които притежават малки и малки букви, а третият съдържа стойностите на прости числа от 0 до 100.
  • функционалността на програмата е проектирана по такъв начин, че атрибутите и съдържанието на тези списъци се очаква да бъдат отпечатани. В такъв случай за тази цел се използват два различни класа. Родителският клас обработва всички азбуки на колекцията, докато класът деца управлява колекцията от най-прости числа.
  • Можем да забележим, че функцията 'attribute_finder_method ()' е декларирана като част от двата class.in родителския клас, този метод държи обработката на атрибути за азбуки и в дочерния клас, той държи обработката на атрибути за прости числа. съществената спецификация е, че името на функцията е едно и също и в двата декларирани класа.
  • Така че, когато обектът се инстанцира за родителски клас, тогава този обект ще бъде в състояние да инициира извикване на функция за метода в родителския клас, а от друга страна, обектът, създаден за детски клас, ще може да инициира извикване на функция за метода в детски клас, Това означава, когато 'object2. attribute_finder_method () 'се нарича това извиква метода за детския клас, дори при наличието на същия метод в родителския клас. Така че това ясно оправдава преодоляването на метода на дочерния клас над родителския клас, деклариран чрез усвояване на факта, че на подклас е предоставен определен тип реализация, при която елементът от родителския клас е презаписан от елемента в подкласа.

Пример №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 " )

изход:

Обяснение:

Тук методът display () е наследен и отменен, което отново постига концепцията за отмяна на метода.

Правила за преодоляване в Python

  • Методът, който се отменя, трябва да бъде същото име като метода, определен в родителския клас
  • статичните методи не могат да бъдат отменени
  • Окончателните методи не могат да бъдат отменени
  • Синхронизираният модификатор не оказва влияние върху правилата за преодоляване.

заключение

Концепцията за преодоляване отразява множество реализации на един и същи клас. тук синхронизираният модификатор не оказва влияние върху правилата за отмяна. По-рано тя определя поведението на участващия клас много дълбоко. тези случаи правят концепцията за отменяне много важна в света на питоните.

Препоръчителни статии

Това е наръчник за Overriding в Python. Тук обсъждаме въвеждането, функцията на преодоляването и правилата за преодоляване в Python. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. Функции на Python
  2. Отмяна на JavaScript
  3. PHP компилатор
  4. Сесии в PHP
  5. Ръководство за статичен метод в PHP
  6. Примери за статичен метод на JavaScript