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 Vector
Klasse 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 Vector2d
verwendet 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.