Sobrecarga de função em Python

Lakshay Kapoor 30 janeiro 2023
  1. Definição de Sobrecarga
  2. Sobrecarga de função em Python
  3. Use Multiple Dispatch Decorator para realizar a sobrecarga de funções em Python
Sobrecarga de função em Python

Este artigo fala sobre a sobrecarga de funções do Python e como você pode executá-la. Incluímos métodos e programas de amostra para você seguir abaixo.

Definição de Sobrecarga

Na programação, o termo sobrecarregar ajuda uma função a agir de várias maneiras com base nos argumentos e parâmetros armazenados nela. A sobrecarga permite a reutilização de um programa repetidamente; por exemplo, em vez de passar vários métodos que não são muito diferentes uns dos outros, apenas um método pode ser passado e pode ser sobrecarregado. Sobrecarregar uma função também torna o programa mais claro e menos complexo.

Você não deve usar este processo excessivamente porque cria confusão ao gerenciar várias funções sobrecarregadas.

Sobrecarga de função em Python

Em Python, uma função pode ser criada e chamada várias vezes passando muitos argumentos ou parâmetros nela. Este processo de chamar a mesma função, repetidamente, usando diferentes argumentos ou parâmetros é chamado de Sobrecarga de Função.

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

Neste programa, definimos inicialmente uma classe chamada Home, na qual definimos uma função Knock. Depois disso, a instrução condicional if-else fornece diferentes condições com base em diferentes entradas. Então criamos um objeto chamado DefObj que a classe principal Home usa para chamar a função Knock. Finalmente, chamamos a função Knock mais de uma vez usando diferentes argumentos. Portanto, usamos a sobrecarga de função neste programa.

Use Multiple Dispatch Decorator para realizar a sobrecarga de funções em Python

Decoradores em Python são as ferramentas que ajudam a modificar o comportamento de uma determinada classe ou função no programa. Eles são usados ​​para adicionar outras funções para modificar a função existente sem realmente alterá-la.

Um Decorador de Despacho ajuda a selecionar implementações de um número de execuções da mesma função abstrata com base na lista de tipos fornecida.

Dê uma olhada no programa de exemplo abaixo:

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)

Resultado:

17.16
0
27

Aqui, você pode passar qualquer tipo de dados para o despachante. O despachante é usado para criar um objeto com diferentes implementações. Durante a execução, a função apropriada é selecionada usando apenas o nome da função, o número de argumentos e o tipo de dados dos argumentos.

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

Artigo relacionado - Python Function