Ich spiele mit Slices in Python (2.7.4):
%Vor%Alles scheint wie erwartet zu funktionieren:
%Vor%Außer es scheint, dass die Slice-Indizes auf 0x7FFFFFFF beschränkt sind:
%Vor% Warum unterliegen Schicht-Indizes nicht der gleichen long
ganzzahligen Heraufstufung wie normale int
-Werte? Gibt es eine Problemumgehung dafür?
Ich habe festgestellt, dass dies eine Einschränkung der alten Klassen zu sein scheint. Klassen im neuen Stil (die von object
abgeleitet sind) ) verhalten sich wie erwartet:
Ergebnisse:
%Vor% Ich habe das nirgends dokumentiert gesehen. Das ist besonders verwirrend, da diese Einschränkung nicht in der slice
-Klasse selbst liegt:
Nach vielen Suchen habe ich das gefunden
In python 3.3 finden Sie den Start und das Ende des Slices wie dies
%Vor%aber in 2.7 sind sie wie dies
%Vor% In% 2.7 verwendet PyInt_FromSsize_t
schließlich die Größe von long
. Wie in 3.3 verwendet PyLong_FromSsize_t
die Größe von PyObject
. Deshalb funktioniert es in 3.3 und nicht in 2.7.
Tags und Links python python-2.7 python-internals