PEP 332 – Byte-Vektoren und String/Unicode-Vereinheitlichung
- Autor:
- Skip Montanaro <skip at pobox.com>
- Status:
- Abgelehnt
- Typ:
- Standards Track
- Erstellt:
- 11. Aug. 2004
- Python-Version:
- 2.5
- Post-History:
Zusammenfassung
Dieser PEP umreißt die Einführung eines rohen bytes Sequenzobjekts und die Vereinheitlichung der aktuellen str und unicode Objekte.
Ablehnungsbescheid
Dieser PEP wird in dieser Form abgelehnt. Der Autor hat seine mangelnde Zeit, ihn weiter zu betreuen, geäußert, und die Diskussion auf python-dev hat sich auf einen leicht abweichenden Vorschlag verlagert, der (eventuell) als neuer PEP ausgearbeitet wird. Siehe den Thread, beginnend bei https://mail.python.org/pipermail/python-dev/2006-February/060930.html.
Begründung
Pythons aktuelle String-Objekte sind überladen. Sie dienen sowohl zur Speicherung von ASCII- und Nicht-ASCII-Zeichen daten als auch zur Speicherung von Sequenzen roher Bytes, die keine sinnvolle Interpretation als darstellbare Zeichensequenzen haben. Diese Überschneidung war in der Vergangenheit kein großes Problem, aber da Python immer mehr darauf hinarbeitet, dass Quellcode ordnungsgemäß kodiert sein muss, wird die Verwendung von Strings zur Darstellung roher Byte-Sequenzen problematischer. Darüber hinaus ist es mit der Verbesserung der Unicode-Unterstützung in Python einfacher geworden, Strings als ASCII-kodierte Unicode-Objekte zu betrachten.
Vorgeschlagene Implementierung
Die Zahl in Klammern gibt die Python-Version an, in der das Feature eingeführt wird.
- Füge ein
bytesBuiltin hinzu, das nur ein Synonym fürstrist. (2.5) - Füge ein
b"..."String-Literal hinzu, das äquivalent zu rohen String-Literalen ist, mit der Ausnahme, dass Werte, die mit der Quellkodierung der enthaltenden Datei kollidieren, keine Warnungen auslösen. (2.5) - Warnung bei der Verwendung von Variablen namens "bytes". (2.5 oder 2.6)
- Führe ein
bytesBuiltin ein, das auf eine vonstrunterschiedliche Sequenz verweist. (2.6) - Mache
strzu einem Synonym fürunicode. (3.0)
Bytes Object API
TBD.
Probleme
- Kann dies vor Python 3.0 erreicht werden?
- Sollen
bytesObjekte veränderlich oder unveränderlich sein? (Guido scheint sie veränderlich zu bevorzugen.)
Urheberrecht
Dieses Dokument wurde gemeinfrei erklärt.
Quelle: https://github.com/python/peps/blob/main/peps/pep-0332.rst
Zuletzt geändert: 2025-02-01 08:59:27 GMT