Skip to main content

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++.

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:

Para decorar métodos internos de clases se debe proveer una firma previa para el tipo.

from sobrecargar import overload # 'ovearload' es un alias pre-definido para 'sobrecargar'
class MiClase: pass #Al proveer firma para la clase, se asegura que `sobrecargar` pueda referenciarla en tiempo de compilación

class MiClase:
    @overload
    def mi_metodo(self, parametro1: int, parametro2: str):
        # Código de la primera versión del método
        ...

    @overload
    def mi_metodo(self, parametro1: float):
        # Código de la segunda versión del método
        ...

Ejemplo de Uso

Función 'libre'

@overload
def suma(a: int, b: int):
    return a + b

@overload
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

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-0.1.9.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

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

sobrecargar-0.1.9-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file sobrecargar-0.1.9.tar.gz.

File metadata

  • Download URL: sobrecargar-0.1.9.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for sobrecargar-0.1.9.tar.gz
Algorithm Hash digest
SHA256 359625779e8579d240c2d683749e0ec2d5c1c2d6abeadea92289e953e74a43ce
MD5 d8b2c552735fdfe841367752c0cb989c
BLAKE2b-256 f6a6adf100b4d2b38735fd38ac895922a630abe1a976843991e707a8944dc7fb

See more details on using hashes here.

File details

Details for the file sobrecargar-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: sobrecargar-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for sobrecargar-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7eb6afbb22fadd4f47ed7efd731d4a4cb161f80ac16c2e7c800533254136a88b
MD5 eed65c8d46156d581fc7239256dfb3a4
BLAKE2b-256 14def59550220f5b6ac06128ba49eb1d26b117344c5017cc97f8749b16c68c3e

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