Kembalikan objek irisan baru dengan nilai yang diberikan. Parameter mulai, berhenti, dan langkah digunakan sebagai nilai atribut objek irisan dengan nama yang sama. Salah satu nilai mungkin NULL, dalam hal ini None akan digunakan untuk atribut yang sesuai. Kembalikan NULL_ jika objek baru tidak dapat dialokasikan
int PySlice_GetIndices( *irisan , panjang , *mulai , *berhenti , *langkah)Bagian dari
Ambil indeks mulai, berhenti, dan langkah dari irisan objek irisan, dengan asumsi urutan panjang panjang. Memperlakukan indeks yang lebih besar dari panjang sebagai kesalahan
Mengembalikan 0 pada kesuksesan dan -1 pada kesalahan tanpa set pengecualian (kecuali salah satu indeks tidak dan gagal dikonversi menjadi bilangan bulat, dalam hal ini -1 dikembalikan dengan set pengecualian)
Anda mungkin tidak ingin menggunakan fungsi ini
Berubah di versi 3. 2. Jenis parameter untuk parameter irisan adalah if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 1 sebelumnya.
int PySlice_GetIndicesEx( *iris, length, *start, *stop, *step, *slicelength)Bagian dari
Pengganti yang dapat digunakan untuk. Ambil indeks awal, hentikan, dan langkah dari irisan objek irisan dengan asumsi urutan panjang panjang, dan simpan panjang irisan dalam panjang irisan. Indeks di luar batas dipotong dengan cara yang konsisten dengan penanganan irisan normal
Mengembalikan 0 pada kesuksesan dan -1 pada kesalahan dengan kumpulan pengecualian
Catatan
Fungsi ini dianggap tidak aman untuk urutan yang dapat diubah ukurannya. Doanya harus diganti dengan kombinasi dan di mana
if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) { // return error } _
digantikan oleh
if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step);
Berubah di versi 3. 2. Jenis parameter untuk parameter irisan adalah if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 1 sebelumnya.
Berubah di versi 3. 6. 1. Jika if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 8 tidak disetel atau disetel ke nilai antara if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 9 dan slice0 (tidak termasuk) atau slice1 atau lebih tinggi slice2 diimplementasikan sebagai makro menggunakan if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 5 dan if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 6. Argumen start, stop, dan step dievaluasi lebih dari satu kali.
Tidak digunakan lagi sejak versi 3. 6. 1. Jika if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 8 diatur ke nilai kurang dari if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); 9 atau antara slice0 dan slice1 (tidak termasuk) slice2 adalah fungsi yang tidak digunakan lagi.
int PySlice_Unpack( *iris, *start, *stop, *step)Bagian sejak versi 3. 7
Ekstrak anggota data awal, hentikan, dan langkah dari objek irisan sebagai bilangan bulat C. Secara diam-diam kurangi nilai yang lebih besar dari NULL0 hingga NULL0, tingkatkan nilai awal dan henti kurang dari NULL2 hingga NULL2 secara diam-diam, dan tingkatkan nilai langkah kurang dari NULL4 hingga NULL4 secara diam-diam
Kembalikan -1 jika ada kesalahan, 0 jika berhasil
Baru di versi 3. 6. 1
PySlice_AdjustIndices( panjang , *start, *stop, step)Bagian sejak versi 3. 7
Sesuaikan indeks irisan awal/akhir dengan asumsi urutan panjang yang ditentukan. Indeks di luar batas dipotong dengan cara yang konsisten dengan penanganan irisan normal
Kembalikan panjang irisan. Selalu sukses. Tidak memanggil kode Python
Baru di versi 3. 6. 1
Objek Python NULL_8. Objek ini tidak memiliki metode. Itu perlu diperlakukan sama seperti objek lain sehubungan dengan jumlah referensi. Seperti itu adalah objek tunggal