تقنية

fromlist في array: هل تبقى الإضافة الأولى بعد خطأ النوع؟

array.fromlist; own:array("i",[4]); batch:[8,"leaf"]; own.fromlist(batch); TypeError; after:[4]
تراجع.

fromlist لا تترك الإضافة الجزئية في مثالنا؛ extend تتركها. [1] [2]

الخلاصة السريعة

لا مع fromlist هنا. [1] [2]

  • fromlist لا تترك الإضافة الجزئية في مثالنا؛ extend تتركها. [1] [2]
  • على CPython 3.12.14، own=array("i",[4]) وbatch=[8,"leaf"]؛ النص يسبب TypeError هنا. [1] [2]
  • بعد own.fromlist(batch)، تلتقط except الخطأ وتظل قيم own هي [4]. [1] [2]
  • التنفيذ المثبت يحفظ الحجم القديم ويرجعه عند فشل تعيين عنصر؛ extend تضيف عناصر القائمة تباعًا. [1] [2]
  • تحكم جديد: control=array("i",[4]) وcontrol_batch=[8,"leaf"]؛ control.extend(control_batch) ترفع TypeError وتترك [4,8]؛ القائمتان لم تتغيرا. مصفوفتان عاديتان دون عروض أو تحويلات مخصصة. [1] [2]

التراجع

fromlist لا تترك الإضافة الجزئية في مثالنا؛ extend تتركها. [1] [2]

المدخل

على CPython 3.12.14، own=array("i",[4]) وbatch=[8,"leaf"]؛ النص يسبب TypeError هنا. [1] [2]

بعد الخطأ

بعد own.fromlist(batch)، تلتقط except الخطأ وتظل قيم own هي [4]. [1] [2]

from array import array own=array("i",[4]);batch=[8,"leaf"] try:own.fromlist(batch) except TypeError:print(list(own)) [1] [2]

array.extend; control:array("i",[4]); control_batch:[8,"leaf"]; control.extend(control_batch); TypeError; after:[4,8]
إضافة جزئية.

التنفيذ والتحكم

التنفيذ المثبت يحفظ الحجم القديم ويرجعه عند فشل تعيين عنصر؛ extend تضيف عناصر القائمة تباعًا. [1] [2]

control=array("i",[4]);control_batch=[8,"leaf"] try:control.extend(control_batch) except TypeError:print(list(control)) [1] [2]

تحكم جديد: control=array("i",[4]) وcontrol_batch=[8,"leaf"]؛ control.extend(control_batch) ترفع TypeError وتترك [4,8]؛ القائمتان لم تتغيرا. مصفوفتان عاديتان دون عروض أو تحويلات مخصصة. [1] [2]

المراجع

  1. Python array
  2. CPython array

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.