مذكرة بايثون
Publié le 19 November 2023
ثبت بايثون على ويندوز
يشغل بايثون
cd mon_projet
python -m venv mon_venv
source mon_venv/bin/activate
# Sur windows
mon_venv\Scripts\activate
deactivate
متطلبات التثبيت
pip install -r requirements.txt
البدء
أنماط تصميم GoF في بايثون
أنماط التصميم من GoF هي مجموعة من 23 نمط تصميم تم وصفها في كتاب "Design Patterns: Elements of Reusable Object-Oriented Software".
هذه قائمة بنماذج التصميم الخاصة بـ GoF
الاسم |
الوصف |
طريقة المصنع |
أنشئ كائنات دون تحديد الفئة التي يجب إنشاؤها بدقة |
المصنع المجرد |
أنشئ عائلات من الكائنات المرتبطة أو التابعة دون تحديد فئتها الملموسة. |
البنّاء |
يفصل بناء كائن معقد عن تمثيله بحيث يمكن نفس عملية البناء إنشاء تمثيلات مختلفة. |
نموذج أولي |
ينشئ كائنات جديدة بنسخ نموذج موجود |
ينغلتون |
يحدّ من إنشاء فئة إلى كائن واحد |
محول |
يحوّل واجهة فئة إلى واجهة أخرى يتوقعها العميل. |
جسر |
يفصل تجريدًا عن تنفيذه بحيث يمكن لكليهما أن يتغيرا بشكل مستقل. |
مُركب |
قم بتركيب الكائنات في هياكل شجرية لتمثيل التدرجات الجزئية الكلية. |
ديكور |
قم بربط مسؤوليات إضافية بشكل ديناميكي بكائن. |
واجهة |
يوفر واجهة موحدة لمجموعة من الواجهات في نظام فرعي. |
وزن الذبابة |
يقلل من تكلفة إنشاء واستخدام الكائنات الخفيفة. |
وكيل |
يوفر بديلًا أو مساحة محجوزة لكائن آخر للتحكم في الوصول إليه. |
سلسلة المسؤولية |
يسمح لأكثر من كائن بمعالجة طلب |
أمر |
تغليف طلب داخل كائن، مما يسمح بتكوين عملاء بطلبات مختلفة، أو قوائم انتظار أو سجلات، ودعم عمليات قابلة للإلغاء. |
مترجم |
قدّم تمثيلًا لقواعد لغة ما واستخدم هذا التمثيل لتفسير الجمل في هذه اللغة. |
المُكرِّر |
يوفر طريقة لتمرير العناصر بشكل متسلسل لكائن مجمّع دون كشف تمثيله الداخلي. |
الوسيط |
يتيح تقليل التبعيات المعقدة بين الكائنات من خلال جعلها تتواصل فقط عبر كائن وسيط. |
ملاحظة |
يوفر القدرة على استعادة كائن إلى حالته السابقة (بدون انتهاك التغليف). |
مراقب |
يحدد اعتمادًا من واحد إلى عدة بين الكائنات بحيث عندما يتغير حالة كائن، يتم إشعار جميع اعتماداته وتحديثها تلقائيًا. |
الدولة |
يسمح للكائن بتغيير سلوكه عندما تتغير حالته الداخلية |
استراتيجية |
يحدد عائلة من الخوارزميات، ويغلف كل واحد منها، ويجعلها قابلة للتبديل. |
طريقة القالب |
يحدد هيكل الخوارزمية في طريقة، مؤجلاً بعض الخطوات إلى الفئات الفرعية. |
زائر |
يسمح بتحديد عملية جديدة يتم إجراؤها على بنية كائنات دون تعديل فئات الكائنات التي تعمل عليها. |
البرمجة الوظيفية
مكتبة |
URL |
الوصف |
PyMonad |
PyMonad هو تنفيذ لهياكل بيانات مونادية في بايثون مستند إلى لغات برمجة مثل هاسكال وF# مع تنفيذات لأنواع المونات الأكثر شيوعًا في البرمجة الوظيفية.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[مقال] |
|
PyFunctional |
PyFunctional هي مكتبة Python للبرمجة الوظيفية التي توفر أدوات للعمل مع الوظائف النقية والمتكررات. |
|
أدوات |
Toolz هي مكتبة بايثون للبرمجة الوظيفية التي توفر أدوات للعمل مع الدوال النقية والتكرارات. |
|
دالة.py |
Fn.py` هو مكتبة Python للبرمجة الوظيفية التي توفر أدوات للعمل مع الوظائف النقية والمتكررة |
|
جوز الهند |
يضيف Coconut العديد من الميزات إلى Python للبرمجة الوظيفية، بما في ذلك مطابقة الأنماط.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[محادثة لطيفة] |
الآثار الجانبية
الحلقات
# impérative way
result = []
for i in inputs:
x = f(g(i))
result.append(x)
# idiomatic way
result = map(comp(f,g), inputs)