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