RE: [Python-es] Sobrecargar método

Hernán MF hernan en orgmf.com.ar
Jue Dic 1 18:05:12 CET 2005


> Entiendo por sobrecargar un método el hecho de implementar distintas
> variantes de un método para que se comporte de forma diferente en
> función del tipo o número de argumentos que reciba. ¿Es correcto? ¿Es
> lo mismo que los multimétodos?

mas precisamente los multimétodos es una forma de implementar la
sobrecarga de métodos en lenguajes con tipos dinámicos.  como éstos no
pueden distinguir en tiempo de "compilación" qué tipo van a recibir,
no se puede construir el vector de funciones al momento de compilar.

>
>>>> c = Cosa()
>>>> c.leeDatos([])
> datos es una lista de elementos
>>>> c.leeDatos(open("cosa.txt", "r"))
> Datos es un fichero
>
> Bueno, hasta ahora, las pocas veces que he necesitado hacer algo así
> he utilizado isinstance() pero he leído que su uso no es muy
> aconsejable. ¿Hay alguna forma más elegante/eficiente/correcta de
> hacer lo siguiente?

la idea es que el programador no tenga que preguntar x el tipo y que
solo tenga que programar como mucho un metodo para cada combinación
de tipos de parametros.
piensa que se complica muchísimo cuando recibes mas de un parámetro
y todos pueden variar de tipo.

> He estado leyendo algunas cosas al respecto ([1, 2, 3]) pero no
> termino de entenderlo. ¿Alguna lectura más clara? Gracias de antemano
> y saludos.

www.wikipedia.org tiene buen material.

saludos,
-H.




Más información sobre la lista de distribución Python-es