Skip to main content

Sobrecarga de métodos y funciones para Python 3.

Project description

Sobrecargar

Hecho por Chaska Versión: 3.1.0 Verisón de Python: 3.12 Licencia: MIT

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ámetroFuncionalidadValor por defectoVersión
cacheSi 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.False3.1.X
debugSi debug es True se imprimen a stdin mensajes de debug para:
  • registro de nueva sobrecarga;
  • llamada a la función;
  • caché (si hay); y
  • resolución de candidatos.
False3.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sobrecargar-3.1.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sobrecargar-3.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

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

Hashes for sobrecargar-3.1.0.tar.gz
Algorithm Hash digest
SHA256 fdee5284b4925b1dff408eb2b9009fa4fda5c5a1b8ef3fc426ce8e10efae90f5
MD5 916536a3be9e3c671e0532ae5b2e2e63
BLAKE2b-256 35f4c664b2f323251b562fae6fdcb069b3015f1216af8dcc5646390e5598e15e

See more details on using hashes here.

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

Hashes for sobrecargar-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 444ba3c563e264063fcc45e67a399ff9990ec09bd97ab06fab1831cadbcc133a
MD5 e3801cbd3ac6ff202080b7e923ee8f19
BLAKE2b-256 d52f1c1540e3538d3c61a49a03be8bf26bbe93d74b0fea85637d70a15d4900a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page