الفرق بين المراجعتين لصفحة: «Python/UserList»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:كائنات <code>UserDict‎</code> في بايثون}}</noinclude> يعدّ UserList صنفًا يغلّف القوائم في بايثون...'
 
 
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:كائنات <code>UserDict‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:كائنات <code>UserList</code> في بايثون}}</noinclude>


يعدّ UserList صنفًا يغلّف القوائم في بايثون، ويعدّ صنفًا أساسيًا مفيدًا لإنشاء أصناف شبيهة بالقوائم خاصّة بالمستخدم، والتي يمكن الوراثة منها وإعادة تعريف توابعها وإضافة توابع أخرى جديدة، وهكذا يمكن إضافة عمليات جديدة على القوائم.
يعدّ <code>UserList</code> صنفًا يغلّف [[Python/list|القوائم]] في بايثون، ويعدّ صنفًا أساسيًا مفيدًا لإنشاء أصناف شبيهة بالقوائم خاصّة بالمستخدم، والتي يمكن الوراثة منها وإعادة تعريف توابعها وإضافة توابع أخرى جديدة، وهكذا يمكن إضافة عمليات جديدة على القوائم.


أصبحت الحاجة إلى هذا الصنف محدودة نظرًا لإمكانية التفريع المباشر من القوائم في بايثون، لكن التعامل مع هذا الصنف أسهل بسبب كون إمكانية الوصول إلى القائمة الضمنية كخاصية.
أصبحت الحاجة إلى هذا الصنف محدودة نظرًا لإمكانية [[Python/inhertance|التفريع]] المباشر من القوائم في بايثون، لكن التعامل مع هذا الصنف أسهل بسبب كون إمكانية الوصول إلى القائمة الضمنية كخاصية.


== البنية العامة ==
== البنية العامة ==
سطر 11: سطر 11:
</syntaxhighlight>
</syntaxhighlight>


يحاكي هذا الصنف القوائم العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في قائمة عادية يمكن الوصول إليها عن طريق خصائص نسخ الصنف UserList. تُسند محتويات النسخة بادئ الأمر إلى نسخة من المعامل list والذي يأخذ القيمة الافتراضية [] والتي تمثّّل قائمة فارغة. يمكن للمعامل list أن يكون أي كائن مكرِّر، مثل قائمة بايثون حقيقية أو كائن UserList.
يحاكي هذا الصنف القوائم العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في قائمة عادية يمكن الوصول إليها عن طريق خصائص نسخ الصنف <code>UserList</code>. تُسند محتويات النسخة بادئ الأمر إلى نسخة من المعامل <code>list</code> والذي يأخذ القيمة الافتراضية <code>[]</code> والتي تمثّّل قائمة فارغة. يمكن للمعامل <code>list</code> أن يكون أيّ كائن مكرِّر، مثل قائمة بايثون حقيقية أو كائن <code>UserList</code>.


== خصائص كائنات <code>UserDict</code> ==
== خصائص كائنات <code>UserDict</code> ==


تدعم نسخ UserList جميع التوابع والعمليات التي تدعمها التسلسلات القابلة للتعديل mutable، إضافة إلى الخاصية التالية:
تدعم نسخ <code>UserList</code> جميع التوابع والعمليات التي تدعمها التسلسلات القابلة للتعديل mutable، إضافة إلى الخاصية التالية:


=== الخاصية <code>data</code> ===
=== الخاصية <code>data</code> ===


قائمة حقيقة تستخدم لتخزين محتويات الصنف UserList.
قائمة حقيقة تستخدم لتخزين محتويات الصنف <code>UserList</code>.


== متطلبات التفريع ==
== متطلبات التفريع ==


يجب أن تقدّم الأصناف المتفرّعة عن الصنف UserList دالة بانية يمكن استدعاءها إما دون أيّ معاملات أو مع معامل واحد. وتحاول عمليات القوائم التي تعيد تسلسلًا جديدًا أن تنشئ نسخة عن الصنف الأصلي. وللقيام بذلك، تفترض هذه العمليات أن الدالية البانية قابلة للاستدعاء مع معامل واحد، وهو كائن تسلسل يستخدم كمصدر للبيانات.
يجب أن تقدّم الأصناف المتفرّعة عن الصنف <code>UserList</code> دالة بانية يمكن استدعاءها إما دون أيّ معاملات أو مع معامل واحد. وتحاول عمليات القوائم التي تعيد تسلسلًا جديدًا أن تنشئ نسخة عن الصنف الأصلي. وللقيام بذلك، تفترض هذه العمليات أن الدالية البانية قابلة للاستدعاء مع معامل واحد، وهو كائن تسلسل يستخدم كمصدر للبيانات.
 
إن لم يخضع أحد الأصناف المشتقّة إلى هذه المتطلبات، فيجب حينئذٍ إعادة تعريف جميع التوابع الخاصّة التي يقدّمها ذلك الصنف.


== انظر أيضًا ==
== انظر أيضًا ==

المراجعة الحالية بتاريخ 08:27، 3 أغسطس 2018


يعدّ UserList صنفًا يغلّف القوائم في بايثون، ويعدّ صنفًا أساسيًا مفيدًا لإنشاء أصناف شبيهة بالقوائم خاصّة بالمستخدم، والتي يمكن الوراثة منها وإعادة تعريف توابعها وإضافة توابع أخرى جديدة، وهكذا يمكن إضافة عمليات جديدة على القوائم.

أصبحت الحاجة إلى هذا الصنف محدودة نظرًا لإمكانية التفريع المباشر من القوائم في بايثون، لكن التعامل مع هذا الصنف أسهل بسبب كون إمكانية الوصول إلى القائمة الضمنية كخاصية.

البنية العامة

class collections.UserList([list])

يحاكي هذا الصنف القوائم العادية في بايثون، ويجري الاحتفاظ بمحتويات النسخة في قائمة عادية يمكن الوصول إليها عن طريق خصائص نسخ الصنف UserList. تُسند محتويات النسخة بادئ الأمر إلى نسخة من المعامل list والذي يأخذ القيمة الافتراضية [] والتي تمثّّل قائمة فارغة. يمكن للمعامل list أن يكون أيّ كائن مكرِّر، مثل قائمة بايثون حقيقية أو كائن UserList.

خصائص كائنات UserDict

تدعم نسخ UserList جميع التوابع والعمليات التي تدعمها التسلسلات القابلة للتعديل mutable، إضافة إلى الخاصية التالية:

الخاصية data

قائمة حقيقة تستخدم لتخزين محتويات الصنف UserList.

متطلبات التفريع

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

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

انظر أيضًا

  • كائنات namedtuple: دالة مولِّدة factory function لإنشاء أصناف فرعية من tuple تتضمن حقولًا مسمّاة
  • كائنات deque: حاوية شبيهة بالقوائم تمتاز بأدائها السريع في إضافة العناصر وحذفها في كلا الطرفين.
  • كائنات ChainMap: صنف شبيه بالقواميس يستخدم لإنشاء عرض منفرد لعمليات ربط mapping متعددة
  • كائنات Counter: صنف فرعي من الصنف dict الهدف منه عدّ الكائنات القابلة للتقطيع hashable
  • كائنات OrderedDict: صنف فرعي من الصنف dict يمكنه تذكّر ترتيب العناصر عند إضافتها
  • كائنات defaultdict: صنف فرعي من الصنف dict يستدعي دالة مولّدة تقدّم القيم المفقودة
  • كائنات UserDict: تغليف حول كائنات القواميس لتسهيل عملية تفريع أصناف القواميس
  • كائنات UserString: تغليف حول كائنات السلاسل النصية لتسهيل عملية تفريع أصناف السلاسل النصية

مصادر

قسم UserList Objects في صفحة Container Datatypes في توثيق بايثون الرسمي.