Multimétodos en Python

Multimétodo básicamente significa una función que tiene múltiples versiones, distinguidas por el tipo de argumentos. Para una mejor comprensión, considere el siguiente ejemplo.

@multimethod
def sum(x: int, y: int):
    return x + y

@multimethod
def sum(x: str, y: str):
    return x+" "+y

The above example is similar to

def sum(x, y):
    
    if isinstance(x, int) and isinstance(y, int):
        return x + y
    
    elif isinstance(x, str) and isinstance(y, str):
        return x + ' ' + y

Instalación

A nivel sintáctico, Python no admite envíos múltiples, pero es posible agregar envíos múltiples usando una extensión de biblioteca multimethod. Para instalar esta biblioteca, escriba el siguiente comando en la terminal.

pip install multimethod

Ejemplo 1:

# Python program to demonstrate
# multimethods
  
  
from multimethod import multimethod
  
  
# Function that will be called
# for integer addition
@multimethod
def sum(x: int, y: int):
    return x + y
  
# Function that will be called
# for string addition
@multimethod
def sum(x: str, y: str):
    return x+" "+y
  
# Driver's code
print(sum(2, 3))
print(sum("Hello", "World"))

Producción:

5
Hello World

Ejemplo 2:

# Python program to demonstrate
# multimethods
  
  
from multimethod import multimethod
  
  
class GFG(object):
      
    @multimethod
    def double(self, x: int):
        print(2 * x)
  
    @multimethod
    def double(self, x: complex):
        print("sorry, I don't like complex numbers")
          
# Driver Code
obj = GFG()
obj.double(3)
obj.double(6j)

Producción:

6
sorry, I don't like complex numbers

Publicación traducida automáticamente

Artículo escrito por nikitadabral30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *