نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

الوحدة functools‎ في بايثون

تُقدّم الوحدة functools دوال عاليّة الرّتبة (higher-order functions)، وهي دوال تستقبل دوالا أخرى، تُغيّرها، أو تُعيد دوال أخرى. وعلى العموم، يُمكن لأيّ كائن قابل للاستدعاء أن يُعامل مُعاملة الدّالة عند استخدام هذه الوحدة. تُعرّف الوحدة functools الدّوال التّاليّة: functools.cmp_to_key()‎ تُحوّل دالّةَ مُقارنة (comparison function) إلى دالّة مفتاح (key function). functools.partial()‎ تُستعمل لإنشاء دالّة جزئيّة من دالّة بتمرير قيم افتراضيّة ثابتة لها. functools.reduce()‎ تُطبّق دالّةً تأخذ مُعاملين بتراكب لعناصر الكائن القابل للتّكرار المُعطى، من اليسار إلى اليمين لتخفيض العناصر إلى قيمة ...

الدالة functools.wraps()‎ في بايثون

تُستعمل الدّالة functools.wraps()‎ كمُزخرف لاستعمال الدّالة functools.update_wrapper()‎ عند تعريف دالّة مُحيطة. الدّالة مُكافئة للدالة الجزئية النّاتجة عن الاستدعاء التالي (انظر الدّالة functools.partial()‎): partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated) البنية العامة @functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES) المعاملات wrapped الدّالة المُحاطة. assigned الخاصيّات التي ستُعيّن. updated الخاصيّات التي ستُحدّث. القيمة المعادة تُحدّث دالّة مُحيطةً لتبدوَ مثل الدّالة المُحاطة. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> from functools import wraps >>> def my_decorator(f): ... @wraps(f) ... def wrapper(*args, **kwds): ... ...

الدالة functools.singledispatch()‎ في بايثون

تُحوّل الدّالة functools.singledispatch()‎ دالّةً عاديّة إلى دالّة عموميّة وحيدة الإرسال (single-dispatch generic function). الدّالة العموميّة هي كلّ دالّة تتكوّن من عدّة دوال تُنفّذ نفس العمليّة لعدّة أنواع. تُحدّد الدّالة التي ستُنفّذ عبر خوارزميّة الإرسال (dispatch algorithm). تكون الدّالة العموميّة وحيدةَ إرسالٍ إذا كان نوع مُعامل واحد هو الذي يُحدّد الدّالة التي ستُنفَّذ. البنية العامة @functools.singledispatch المعاملات لا توجد مُعاملات القيمة المعادة دالّة عموميّة وحيدة الإرسال. أمثلة لإنشاء دالّة عموميّة، زخرِفها بالمُزخرِف ‎@singledispatch‎. لاحظ أنّ الإرسال يحدث عند نوع أوّل مُعامل: ...

الدالة functools.partial()‎ في بايثون

تعيد الدّالة functools.partial()‎ كائن partial يتصرّف كالدّالة المُعطاة عند استدعائها بما مُرّر من مُعاملات (arguments) ومُعاملات كلمات مفتاحيّة (keyword arguments، أي المُعاملات التي تُمرّر مع ذكر أسمائها إضافةً إلى قيمها). إن استُدعيَ الكائن بمُعاملات إضافيّة، فستُضاف إلى مُعاملات الدّالة، و إن استُدعيَ الكائن بمُعاملات كلمات مفتاحيّة إضافيّة، فستُوسّع وتُعوّض معاملات الكلمات المفتاحيّة السّابقة. تُستعمل لإنشاء دالّة جزئيّة من دالّة بتمرير قيم افتراضيّة ثابتة لها. البنية العامة functools.partial(func, *args, **keywords) المعاملات func الدّالة المرغوب إنشاء دالّة جزئيّة منها. args المُعاملات التي ...

الدالة functools.update_wrapper()‎ في بايثون

تُحدّث الدّالة functools.update_wrapper()‎ دالّة مُحيطةً (wrapper) لتبدوَ مثل الدّالة المُحاطة (wrapped). المُعاملات الاختياريّة هي صفوفٌ تُستخدم لتحديد أيّ خاصيّات الدّالة الأصليّة ستُعيّن مُباشرة للخاصيّات الموافقة لها على الدّالة المُحيطة وأيّ الخاصيّات من خاصيّات الدّالة المُحيطة ستُحدَّثُ بالخاصيّات المُوافقة لها في الدّالة الأصليّة. القيم الافتراضيّة لهذه المُعاملات هي الثّوابت المُتاحة على مستوى الوحدة: WRAPPER_ASSIGNMENTS‎: والتي تُعيّن كلّا من ‎__module__‎، و‎__name__‎، و‎__qualname__‎، و‎__annotations__‎‎، و‎__doc__‎‎، التي تُعدّ خاصيّاتٍ تُضيف معلومات حول الدّالة. WRAPPER_UPDATES‎: التي تُحدّث خاصيّة ‎__dict__‎ الخاصّة بالدّالة المُحيطة، أي قاموس النّسخة ...

الدالة functools.tools.cmp_to_key()‎ في بايثون

تُحوّل الدّالة functools.cmp_to_key()‎ دالّة مُقارنة (comparison function) إلى دالّة مفتاح (key function). تُستعمل مع الأدوات التي تقبل دوالّ مفتاح مثل sorted()‎، وmin()‎، وmax()‎، وheapq.nlargest()‎، وheapq.nsmallest()‎، وitertools.groupby()‎. تُستعمل هذه الدّالة أساسًا كأداة لنقل البرامج من Python 2 التي دعمت استعمال دوال المُقارنة. دالّة المُقارنة هي كلّ كائن قابل للاستدعاء يستقبل مُعاملين ويُقارن بينهما، ويُعيد عددًا سالبًا في حالة أصغر من، الصّفر في حالة التّساوي، وعددًا موجبًا في حالة أكبر من. ودالّة مفتاح هي كائن قابل للاستدعاء يستقبل مُعاملًا واحدًا ويُعيد قيمةً ...

الدالة functools.lru_cache()‎ في بايثون

الدّالة functools.lru_cache()‎ مُزخرفٌ يُحيط دالّة بكائن قابل للاستدعاء مُتذكّر (memoizing callable). الكائن المُتذكِّر يحتفظ بعددٍ من آخر الاستدعاءات حسب قيمة المُعامل maxsize. ويُمكن أن تختصر الوقت إن كانت دالّة تأخذ الكثير من الوقت تُستدعَى بنفس المُعاملات عدّة مرّات. ولأنّ النّتائج تُخبّأ (cache) في قاموس، فيجب على المُعاملات المُمرّرة للدّالة المُزخرَفة أن تكون قابلة للتّجزئة (hashable). البنية العامة @functools.lru_cache(maxsize=128, typed=False) المعاملات maxsize عدد الاستدعاءات التي ستُخبّأ، إن مُرّرت له القيمة None، تُعطّل ميّزة LRU (الأقلّ استخدامًا مؤخّرًا، Least recently used) ويُمكن ...

الدالة functools.total_ordering()‎ في بايثون

يقوم مُزخرف الأصناف functools.total_ordering()‎ بزخرفة صنف يُعرّف تابعًا أو عدّة توابع ترتيب مُقارنة غنيّة (rich comparison ordering methods)، ويقوم بإضافة بقيّة توابع المُقارنة. يُبسّط هذا الجهد المبذول في تحديد جميع عمليّات المُقارنة الغنيّة المُمكنة. يجب على الصّنف أن يُعرّف التّابع الخاصّ ‎__lt__()‎، أو ‎__le__()‎، أو ‎__gt__()‎، أو ‎__ge__()‎. إضافة إلى التّابع الخاصّ ‎__eq__()‎. البنية العامة @functools.total_ordering المعاملات لا توجد مُعاملات. أمثلة المثال التّالي يوضّح كيفيّة استعمال المُزخرف للمُقارنة بين سياراتٍ حسب سُرعتها، تابع حالة التّساوي يُشير إلى أنّ نُسخةً من ...

الدالة functools.partialmethod()‎ في بايثون

تعيد الدّالة functools.partialmethod()‎ واصفًا يتصرّف مثل كائنات partial، إلّا أنّه مُصمّم ليُستخدم كتعريف تابع (method definition) عوضًا عن أن يكون قابلا للاستدعاء (callable) مُباشرة. البنية العامة functools.partialmethod(func, *args, **keywords) المعاملات func واصفٌ أو كائن قابل للاستدعاء (تُعامل الكائنات التي تجتمع فيها الصّفتان على أنّها واصفات، مثل الدّوال). عندما يكون func واصفًا (مثل دالّة بايثون عاديّة، أو الدّالة classmethod()‎، أو الدّالة staticmethod()‎، أو نسخة أخرى من partialmethod)، فستُفوّض استدعاءات الخاصيّة ‎__get__‎ إلى الواصف المنشأ، وسيُعاد كائن partial كنتيجة. عندما يكون func ...

الدالة functools.reduce()‎ في بايثون

تُطبّق الدّالة functools.reduce()‎ دالّة تأخذ مُعاملين بتراكب لعناصر الكائن القابل للتّكرار المُعطى، من اليسار إلى اليمين لتخفيض العناصر إلى قيمة واحدة (كجمع عدّة مبالغ للحصول على مبلغ إجماليّ واحد مثلًا). البنية العامة functools.reduce(function, iterable[, initializer]) المعاملات function الدّالة المُراد تطبيقها على عناصر الكائن القابل للتّكرار. iterable الكائن القابل للتّكرار. initializer قيمة بدئيّة تُضاف إلى بداية العناصر قبل بدء الحساب، وتكون كذلك قيمة افتراضيّة عندما يكون الكائن القابل للتّكرار فارغًا. إن لم تُمرّر قيمة للمُعامل initializer واحتوى الكائن القابل للتّكرار على ...

عرض (20 السابقة | 20 التالية) (20 | 50 | 100 | 250 | 500).