Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

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:


Inhaltsverzeichnis

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 bytes Builtin hinzu, das nur ein Synonym für str ist. (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 bytes Builtin ein, das auf eine von str unterschiedliche Sequenz verweist. (2.6)
  • Mache str zu einem Synonym für unicode. (3.0)

Bytes Object API

TBD.

Probleme

  • Kann dies vor Python 3.0 erreicht werden?
  • Sollen bytes Objekte veränderlich oder unveränderlich sein? (Guido scheint sie veränderlich zu bevorzugen.)

Quelle: https://github.com/python/peps/blob/main/peps/pep-0332.rst

Zuletzt geändert: 2025-02-01 08:59:27 GMT