Slice-Indizes, die auf 0x7FFFFFFF beschränkt sind

8

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?

    
Jonathon Reinhart 31.10.2013, 02:18
quelle

2 Antworten

7

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:

%Vor%

Ergebnisse:

%Vor%

Ich habe das nirgends dokumentiert gesehen. Das ist besonders verwirrend, da diese Einschränkung nicht in der slice -Klasse selbst liegt:

%Vor%     
Jonathon Reinhart 31.10.2013, 02:28
quelle
7

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.

    
thefourtheye 31.10.2013 04:05
quelle