Sobrecarga de métodos y funciones para Python 3.
Project description
Sobrecargar
Descripción
sobrecargar es un módulo de Python que incluye una única clase homonima, la cual provee la implementación de un @decorador universal, que permite definir múltiples versiones de una función o método con diferentes conjuntos de parámetros y tipos. Esto permite crear una sobrecarga de funciones similar a la que se encuentra en otros lenguajes de programación, como C++.
Instalación
Puede decargar e instalar sobrecargar utilizando el manejador de paquetes PIP, según se indica a continuación:
Ejecute el siguiente comando en la terminal:
pip install sobrecargar
Uso Básico
Decorar una función:
Se puede emplear tanto @sobrecargar como @overload para decorar funciones o métodos.
from sobrecargar import sobrecargar
@sobrecargar
def mi_funcion(parametro1: int, parametro2: str):
# Código de la primera versión de la función
...
@sobrecargar
def mi_funcion(parametro1: float):
# Código de la segunda versión de la función
...
Decorar un método de una clase:
[!TIP]
Desde la versión 3.0.2 los métodos (funciones miembro) se sobrecargan de la misma forma que las "funciones libres".
from sobrecargar import sobrecargar # 'ovearload' es un alias pre-definido para 'sobrecargar'
class MiClase:
@sobrecargar
def mi_metodo(self, parametro1: int, parametro2: str):
# Código de la primera versión del método
...
@sobrecargar
def mi_metodo(self, parametro1: float):
# Código de la segunda versión del método
...
Ejemplo de Uso
Función 'libre'
@sobrecargar
def suma(a: int, b: int):
return a + b
@sobrecargar
def suma(a: list[int]):
return sum([x for x in a])
resultado1 = suma(1, 2) # Llama a la primera versión de la función suma, con parámetros a y b : int
>> 3
resultado2 = suma([1,2,3,4,5]) # Llama a la segunda versión de la función suma, con parámetro a : List[int]
>> 15
Configuración
El decorador @sobrecargar acepta configuraciones por parámetro, proveyendo valores razonables por defecto.
[!TIP]
Desde la versión 3.1.0
| Parámetro | Funcionalidad | Valor por defecto | Versión |
|---|---|---|---|
| cache | Si cache es True se intenta utilizar la función correspondiente a los tipos provistos guardada en caché, si no existe, se corre la estrategia de resolución de candidatos y se guarda en caché para usos subsiguientes. El caché es sensible no soo a los tipos de los parámetros, sino también al orden en que fueran provistos. | False | 3.1.X |
| debug | Si debug es True se imprimen a stdin mensajes de debug para:
| False | 3.1.X |
El decorador puede seguir utilizandose sin necesidad de prover ningún parámetro ni utilizar (), se aplican valores por defecto.
[!NOTE] Si cualquiera de las sobrecargas declara un parámetro de configuración, este se aplica a todas ellas.
Ejemplo:
@sobrecargar(cache=True, debug=True)
def funcion_cacheada_debugeada(a: float, *args : *tuple[int]):
return a * sum(a for a in args)
@sobrecargar # cache = True, debug = True / a pesar que no se indican explícitamente, porque ya existe una sobrecarga con cahcé y debug.
def funcion_cacheada_debugeada(a: float, b: Union[float,int] ):
return a * b
Nota: Esta documentación es un resumen de alto nivel. Para obtener más detalles sobre la implementación y el uso avanzado, se recomienda consultar el código fuente, la documentación provista y realizar pruebas adicionales.
Documentación
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sobrecargar-3.1.0.tar.gz.
File metadata
- Download URL: sobrecargar-3.1.0.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdee5284b4925b1dff408eb2b9009fa4fda5c5a1b8ef3fc426ce8e10efae90f5
|
|
| MD5 |
916536a3be9e3c671e0532ae5b2e2e63
|
|
| BLAKE2b-256 |
35f4c664b2f323251b562fae6fdcb069b3015f1216af8dcc5646390e5598e15e
|
File details
Details for the file sobrecargar-3.1.0-py3-none-any.whl.
File metadata
- Download URL: sobrecargar-3.1.0-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
444ba3c563e264063fcc45e67a399ff9990ec09bd97ab06fab1831cadbcc133a
|
|
| MD5 |
e3801cbd3ac6ff202080b7e923ee8f19
|
|
| BLAKE2b-256 |
d52f1c1540e3538d3c61a49a03be8bf26bbe93d74b0fea85637d70a15d4900a7
|