Перегрузка функций в Python

Lakshay Kapoor 30 Январь 2023 12 Июль 2021
  1. Определение перегрузки
  2. Перегрузка функций в Python
  3. Используйте Multiple Dispatch Decorator для выполнения перегрузки функций в Python
Перегрузка функций в Python

В этой статье рассказывается о перегрузке функций Python и о том, как ее выполнить. Мы включили методы и примеры программ, которым вы можете следовать ниже.

Определение перегрузки

В программировании термин перегрузка помогает функции действовать по-разному в зависимости от аргументов и параметров, хранящихся в ней. Перегрузка позволяет многократно использовать программу; например, вместо передачи нескольких методов, которые не слишком отличаются друг от друга, можно передать только один метод, который может быть перегружен. Перегрузка функции также делает программу более понятной и менее сложной.

Не следует использовать этот процесс чрезмерно, поскольку он создает путаницу при управлении несколькими перегруженными функциями.

Перегрузка функций в Python

В Python функцию можно создать и вызвать несколько раз, передав в нее множество аргументов или параметров. Этот процесс вызова одной и той же функции снова и снова с использованием разных аргументов или параметров называется перегрузкой функции.

class Home:
    def Knock(self, person_one=None, person_two=None):
        if person_one is not None and person_two is None:
            print("Hi, " + person_one)
        elif person_one is not None and person_two is not None:
            print("Hi, " + person_one + " and " + person_two)
        else: 
            print("Who's there? ")

DefObj = Home()

DefObj.Knock()
DefObj.Knock('Rick','Morty')
DefObj.Knock('Sam')

В этой программе мы изначально определяем класс под названием Home, в котором мы определяем функцию Knock. После этого условный оператор if-else дает разные условия на основе разных входных данных. Затем мы создаем объект с именем DefObj, который основной класс Home использует для вызова функции Knock. Наконец, мы неоднократно вызывали функцию Knock, используя разные аргументы. Поэтому в этой программе мы использовали перегрузку функций.

Используйте Multiple Dispatch Decorator для выполнения перегрузки функций в Python

Декораторы в Python - это инструменты, которые помогают изменить поведение определенного класса или функции в программе. Они используются для добавления других функций для изменения существующей функции без ее фактического изменения.

Dispatch Decorator помогает вам выбрать реализации из ряда выполнений одной и той же абстрактной функции на основе заданного списка типов.

Взгляните на пример программы ниже:

from multipledispatch import dispatch

@dispatch(float,float,float)
def summation(float_1,float_2,float_3):
    total = float_1+float_2+float_3
    print(total);

@dispatch(int,int,int)
def difference(int_1,int_2,int_3):
    diff  = int_1 - int_2 - int_3
    print(diff);

@dispatch(int,int,int)
def multiply(int_1,int_2,int_3):
    product  = int_1*int_2*int_3
    print(product);

summation(6.9,3.14,7.12) 
difference(9,6,3)
product(3,3,3)

Выход:

17.16
0
27

Здесь вы можете передать диспетчеру любой тип данных. Диспетчер используется для создания объекта с разными реализациями. Во время выполнения выбирается соответствующая функция, просто используя имя функции, количество аргументов и тип данных аргументов.

Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Сопутствующая статья - Python Function