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.