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

من موسوعة حسوب
سطر 19: سطر 19:


== <code>[[Python/functools/total_ordering|functools.total_ordering()‎]]</code> ==
== <code>[[Python/functools/total_ordering|functools.total_ordering()‎]]</code> ==
يقوم بزخرفة صنف يُعرّف تابعًا أو عدّة توابع ترتيب مُقارنة غنيّة (rich comparison ordering methods)، ويقوم بإضافة بقيّة توابع المُقارنة. يُبسّط هذا الجهد المبذول في تحديد جميع عمليّات المُقارنة الغنيّة المُمكنة.
== <code>[[Python/functools/singledispatch|functools.singledispatch()‎]]</code> ==
== <code>[[Python/functools/singledispatch|functools.singledispatch()‎]]</code> ==
== <code>[[Python/functools/wraps|functools.wraps()‎]]</code> ==
== <code>[[Python/functools/wraps|functools.wraps()‎]]</code> ==

مراجعة 20:28، 1 يوليو 2018

تُقدّم الوحدة functools دوال عاليّة الرّتبة (higher-order functions)، وهي دوال تستقبل دوالا أخرى، تُغيّرها، أو تُعيد دوال أخرى. وعلى العموم، يُمكن لأيّ كائن قابل للاستدعاء أن يُعامل مُعاملة الدّالة عند استخدام هذه الوحدة.

تُعرّف الوحدة functools الدّوال التّاليّة:

functools.cmp_to_key()‎

تُحوّل دالّةَ مُقارنة (comparison function) إلى دالّة مفتاح (key function).

functools.partial()‎

تُستعمل لإنشاء دالّة جزئيّة من دالّة بتمرير قيم افتراضيّة ثابتة لها.

functools.reduce()‎

تُطبّق دالّةً تأخذ مُعاملين بتراكب لعناصر الكائن القابل للتّكرار المُعطى، من اليسار إلى اليمين لتخفيض العناصر إلى قيمة واحدة (كجمع عدّة مبالغ للحصول على مبلغ إجماليّ واحد مثلًا).

functools.update_wrapper()‎

تُحدّث دالّةً مُحيطةً (wrapper) لتبدوَ مثل الدّالة المُحاطة (wrapped).

functools.lru_cache()‎

مُزخرفٌ يُحيط دالّة بكائن قابل للاستدعاء مُتذكّر (memoizing callable).

functools.total_ordering()‎

يقوم بزخرفة صنف يُعرّف تابعًا أو عدّة توابع ترتيب مُقارنة غنيّة (rich comparison ordering methods)، ويقوم بإضافة بقيّة توابع المُقارنة. يُبسّط هذا الجهد المبذول في تحديد جميع عمليّات المُقارنة الغنيّة المُمكنة.

functools.singledispatch()‎

functools.wraps()‎

functools.partialmethod()‎

مصادر