[Python-es] why builtin functions?

Chema Cortes pych3m4 en gmail.com
Dom Ago 10 14:16:57 CEST 2014


El 8 de agosto de 2014, 22:17, Carlos Zuniga <carlos.zun en gmail.com>
escribió:

> On Tue, Aug 5, 2014 at 12:46 PM, Jose Caballero
> <jcaballero.hep en gmail.com> wrote:
> >
> http://www.diveintopython.net/power_of_introspection/built_in_functions.html
> >
> > even I don't understand the explanation.
> > Anyways, I stick with my original attitude: I don't know and I don't
> > care, I just learn how to use it.
>
> La razón por la que len es una función y no un método es muy
> interesante y Guido la explica en el FAQ [0], pero básicamente se
> reduce a facilidad de lectura.
>
> Primero por que para algunas cosas se ve mejor un prefijo que un
> sufijo, en matemáticas se usa bastante más los prefijos; segundo
> porque len(x) te dice de antemano que el resultado es un entero (y x
> un contenedor) mientras que x.len() puede ser cualquier cosa,
> dependiendo de la implementación.
>

Yo, en cambio, pienso que 'len' (o 'size' o 'shape') debería ser
"propiedades" del contenedor (atributo property) y que, en general, debería
ser la implementación quién le de su sentido real. Hacer que 'len' sea una
función hace que todo se parezca a una lista, algo que no está mal como
primer ataque a un problema, pero que distorsiona bastante cuando usas
estructuras de datos algo más sofisticadas (matrices, listas sparse, listas
recursivas, iteradores, trees, clusters, fractales,...).


>
>
> Saludos
>
> [0]
> http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm
>
> --
> A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
> de leer manuales.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140810/b0e58b44/attachment.html>


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