Capítulo 12. Métodos especiales para secuencias
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
No compruebes si es-un-pato: comprueba si grazna-como-un-pato, si camina-como-un-pato, etc., etc., dependiendo exactamente de con qué subconjunto de comportamiento-como-un-pato necesites jugar a tus juegos lingüísticos. (
comp.lang.python
, 26 de julio de 2000)Alex Martelli
En este capítulo, crearemos una clase para representar una clase multidimensional Vector
, un avance significativo respecto a la bidimensional Vector2d
del Capítulo 11.Vector
se comportará como una secuencia plana inmutable estándar de Python. Sus elementos serán flotantes, y al final de este capítulo soportará lo siguiente:
-
Protocolo básico de secuencias:
__len__
y__getitem__
-
Representación segura de instancias con muchos elementos
-
Soporte de corte adecuado, produciendo nuevas instancias
Vector
-
Hashing agregado, teniendo en cuenta cada valor de elemento contenido
-
Extensión de idioma de formato personalizado
También implementaremos el acceso dinámico a atributos con __getattr__
como forma de sustituir las propiedades de sólo lectura que utilizábamos en Vector2d
-aunque esto no es típico de los tipos de secuencia.
La presentación, intensiva en código, se verá interrumpida por un debate conceptual sobre la idea de los protocolos como interfaz informal. Hablaremos de cómo se relacionan los protocolos y la tipificación de patos, y de sus ...
Get Python fluido, 2ª edición now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.