Kapitel 12. Spezielle Methoden für Sequenzen

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Überprüfe nicht, ob sie eine Ente ist: Überprüfe, ob sie wie eine Ente quakt, wie eine Ente läuft, usw., usw., je nachdem, mit welcher Teilmenge des entenähnlichen Verhaltens du deine Sprachspiele spielen willst. (comp.lang.python, Jul. 26, 2000)

Alex Martelli

In werden wir in diesem Kapitel eine Klasse erstellen, die eine mehrdimensionale VectorKlasse repräsentiert - ein deutlicher Fortschritt gegenüber der zweidimensionalen Vector2d aus Kapitel 11.Vector wird sich wie eine standardmäßige unveränderliche flache Python-Sequenz verhalten. Ihre Elemente werden Floats sein, und sie wird am Ende dieses Kapitels Folgendes unterstützen:

  • Grundlegendes Sequenzprotokoll: __len__ und __getitem__

  • Sichere Darstellung von Instanzen mit vielen Items

  • Richtige Slicing-Unterstützung, die neue Vector Instanzen erzeugt

  • Aggregate Hashing, bei dem jeder enthaltene Elementwert berücksichtigt wird

  • Erweiterung der benutzerdefinierten Formatierungssprache

Wir werden auch den dynamischen Zugriff auf Attribute mit __getattr__implementieren, um die schreibgeschützten Eigenschaften zu ersetzen, die wir in Vector2dverwendet haben - auch wenn dies nicht typisch für Sequenztypen ist.

Die codeintensive Präsentation wird durch eine konzeptionelle Diskussion über die Idee von Protokollen als informelle Schnittstelle unterbrochen. ...

Get Fließendes Python, 2. Auflage 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.