gracias por los comentarios!!

El día 5 de agosto de 2014, 19:59, Daπid <davidmen...@gmail.com> escribió:
> On 6 August 2014 00:43, Jose Caballero <jcaballero....@gmail.com> wrote:
>>
>> En particular, mi colega me pregunta que por que python  implementa la
>> funcion  len( )   pero no existe el metodo len() para clases como
>> list, string, etc.
>
>
> Sí existe, pero se llama __len__(). La existencia de algunos builtins está
> clara: son propiedades muy básicas útiles para muchos objetos diferentes. Si
> simplemente existiera el método .len(), un programador perezoso podría
> llamar al método correspodiente .size() o .shape() (e.g.: arrays de Numpy),
> y trabajar con secuencias sería mucho más difícil. ¿Cómo de larga es? ¿Tiene
> el método len()?
>
> Al fijar un método mágico y un builtin como alias, Python enfuerza una API
> concreta para cualquier tipo de secuencias.
>
> Funciones como max() o min() son operaciones muy comunes, que se benefician
> enormemente de estar programadas en C. De nuevo, las secuencias en la
> biblioteca estandard podrían haber implementado .max() en C, pero entonces
> tendríamos que volver a reimplementarlo para cada nuevo clase que creáramos
> (y la API C es dura).
>
> El caso de type() es que el intérprete de Python sabe mejor qué es cualquier
> objeto que ellos mismos. Podría haberse implementado como un método añadido
> automáticamente a cualquier objeto, pero sería añadir magia negra porque:
>
> class Nothing():
>    pass
>
> tendría métodos definidos, y podría ser sobreescrito:
>
> class Pranker(object):
>     def type(self):
>          import antrigravity
>          return None
>
> Está claro que debería ser de sólo lectura, pero lo haría un caso especial.
>
>
> /David.
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a