slice() كائن شريحة
آخر تحديث: 2026-09-22
slice() كائن شريحة
يُرجع slice(stop) أو slice(start, stop[, step]) كائن شريحة؛ يُستخدم في __getitem__ للقوائم list/الصفوف tuple وغيرها.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
slice(stop)
slice(start, stop[, step])
⚙️ المعاملات
| stop مطلوب | The stop index (exclusive); in the one-arg form it is the slice endpoint. |
|---|---|
| start اختياري | The start index (inclusive); None when omitted.(القيمة الافتراضية:None) |
| step اختياري | The step; None when omitted.(القيمة الافتراضية:None) |
القيمة المُعادة:A slice object with start/stop/step attributes, passable to __getitem__.
💥 الاستثناءات
TypeError— Raised when an argument is not an integer (no __index__).
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
[1, 3]
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qهل slice(1, 5, 2) و lst[1:5:2] هما نفس الشيء؟
Aنعم — lst[1:5:2] يدعو داخليًا lst[slice(1, 5, 2)]؛ كائن slice مناسب لبناء شرائح ديناميكيًا (مثلًا عندما تأتي وسائط الشريحة من إعدادات أو مدخلات المستخدم).
Qهل start/stop/step لكائن slice أعداد صحيحة دائمًا؟
Aلا، يمكن حذفها كـ None: start و step للـ slice(5) هما None، بمعنى «من البداية حتى الفهرس 5»، بما يتوافق مع lst[:5].
Qكيف يدعم صنف مخصص التقطيع؟
Aنفّذ __getitem__(self, key)؛ عندما يكون key كائن slice، حلّل start/stop/step وطبّق المنطق المناظر.
Qهل يجب أن تكون وسائط slice أعدادًا صحيحة؟
Aنعم — تمرير غير صحيح (مثل slice('a', 'b')) يُثير TypeError؛ يجب أن تنفذ الوسيطات __index__.