Sie scheinen mir das gleiche Ergebnis zu geben:
%Vor%Wann sollte man gegen die andere verwendet werden?
Aus praktischer Sicht ist der Unterschied:
%Vor%Erstellt eine Kopie der Zeichenfolge im Speicher, während:
%Vor%oder
%Vor% Verwendet den Speicherpuffer der Zeichenfolge direkt und verwendet keinen * zusätzlichen Speicher. Die Verwendung von frombuffer
führt auch zu einem schreibgeschützten Array, wenn die Eingabe in buffer
ein String ist, da Strings in Python unveränderlich sind.
(* Vernachlässigung einiger Speicherbytes für ein zusätzliches Python ndarray
-Objekt - Der zugrunde liegende Speicher für die Daten wird gemeinsam genutzt.)
Wenn Sie nicht mit buffer
-Objekten ( memoryview
in python3.x)
Wenn Sie mit etwas arbeiten, das die Pufferschnittstelle offenlegt, dann möchten Sie wahrscheinlich frombuffer
verwenden. (Python 2.x-Strings und Python 3.x bytes
legen die Pufferschnittstelle offen, aber Sie erhalten ein schreibgeschütztes Array, da Python-Strings unveränderlich sind.)
Andernfalls verwenden Sie fromstring
, um ein numpiges Array aus einer Zeichenfolge zu erstellen. (Es sei denn, Sie wissen, was Sie tun, und möchten die Speicherbelegung genau steuern.)