الفرق بين وحدات وحزم ومكتبات وأطر بايثون

إذا كنت جديدًا في لغة Python، فقد تكون في حيرة من أمرك بشأن جميع مكتباتها وحزمها ووحداتها وأطر عملها. من السياق، يمكنك عادةً أن تفهم أن هذه مجرد أجزاء من التعليمات البرمجية. ولكن ما الفرق بينهما؟ في هذه المقالة، سأشرح الفرق بين وحدات Python والحزم والمكتبات والأطر بعبارات بسيطة.

برامج العالم الحقيقي معقدة. حتى اللعبة البسيطة مثل محاكي رمي النرد ستتطلب الكثير من التعليمات البرمجية إذا قمت ببرمجة كل شيء من الصفر. لتبسيط العملية وجعلها أكثر فعالية، يستفيد المطورون من البرمجة المعيارية – وهي طريقة لتقسيم مهام البرمجة الكبيرة إلى مهام فرعية أصغر وأكثر قابلية للإدارة. ولهذا السبب تمتلك بايثون الكثير من الوحدات والحزم والمكتبات والأطر.

الآن، دعونا نتعمق أكثر في كل من هذه المفاهيم حتى نتمكن من فهم الاختلافات.

وحدات بايثون

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

على سبيل المثال، دعونا نحدد دالة للترحيب بالطلاب الجدد في دورة معينة:

def welcome_message(course):
  print("Thank you for subscribing to our " + course + " course. You will get all the details in an email shortly.")

لتخزين هذه الدالة في وحدة welcome، نقوم بحفظ هذا الكود في ملف يسمى Welcome.py.

إذا أردنا استخدام هذا الكود في تطبيقنا، نحتاج أولاً إلى استيراد الوحدة المعنية باستخدام عبارة import. بعد ذلك، سنكون جاهزين لاستخدام دالة محددة في هذه الوحدة عن طريق استدعاء تلك الدالة باستخدام بناء جملة module.function() :

import welcome
welcome.welcome_message (“Python Basics Part 1”)
Output
Thank you for subscribing to our Python Basics Part 1 course. You will get all the details in the email shortly.

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

from welcome import welcome_message

إذا كان لديك بعض الخبرة في لغة Python، فمن المحتمل أنك استخدمت الوحدات. على سبيل المثال، ربما تكون قد استخدمت ما يلي:

  • random : وحدة لإنشاء مولدات أرقام عشوائية زائفة لتوزيعات مختلفة.
  • html : وحدة لتحليل صفحات HTML.
  • datetime : وحدة لمعالجة بيانات التاريخ والوقت.
  • re : وحدة لاكتشاف وتحليل التعبيرات العادية في بايثون.

تقدم الوحدات العديد من الفوائد في كود Python الخاص بك:

  • تحسين عملية التطوير: تساعدك وحدات بايثون على التركيز على جزء صغير من المهمة بدلاً من التركيز على المشكلة بأكملها. وهذا يبسط عملية التطوير ويجعلها أقل عرضة للأخطاء. علاوة على ذلك، عادةً ما تتم كتابة الوحدات بطريقة تقلل من الاعتماد المتبادل. وبالتالي، من الأفضل أن يعمل فريق من عدة مبرمجين على نفس التطبيق.
  • يمكن استخدام الدالة التي تحددها في وحدة واحدة في أجزاء مختلفة من التطبيق، مما يقلل من تكرار التعليمات البرمجية.
  • مساحات أسماء منفصلة: باستخدام وحدات بايثون، يمكنك تحديد مساحات أسماء منفصلة لتجنب التصادمات بين المعرفات في أجزاء مختلفة من التطبيق الخاص بك.

حزم بايثون

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

حزم بايثون هي في الأساس دليل لمجموعة من الوحدات. تسمح الحزم بالهيكل الهرمي لمساحة اسم الوحدة. مثلما ننظم ملفاتنا على القرص الصلب في مجلدات ومجلدات فرعية، يمكننا تنظيم وحداتنا في حزم وحزم فرعية.

لكي يتم اعتباره حزمة (أو حزمة فرعية)، يجب أن يحتوي الدليل على ملف يسمى __init__.py. يتضمن هذا الملف عادةً رمز التهيئة للحزمة المقابلة.

على سبيل المثال، يمكن أن يكون لدينا الحزمة التالية my_model مع الوحدات المتعلقة بمشروع علم البيانات:

يمكننا استيراد وحدات محددة من هذه الحزمة باستخدام النقطة. على سبيل المثال، لاستيراد وحدة dataset من الحزمة المذكورة أعلاه، يمكننا استخدام الكود التالي:

import my_model.training.dataset

أو

from my_model.training import dataset

بعد ذلك، قد نختار استيراد دالة Load_dataset() فقط من وحدة dataset.py. سيقوم أي من الخيارين التاليين بالمهمة:

import my_model.training.dataset.load_dataset()

أو

from my_model.training.dataset import load_dataset()

هناك الكثير من حزم بايثون المدمجة والمفتوحة المصدر التي ربما تستخدمها بالفعل. على سبيل المثال:

  • NumPy: هي حزمة بايثون الأساسية للحوسبة العلمية.
  • pandas: عبارة عن حزمة بايثون للمعالجة السريعة والفعالة للبيانات الجدولية والسلاسل الزمنية وبيانات المصفوفة وما إلى ذلك.
  • pytest: يوفر مجموعة متنوعة من الوحدات لاختبار التعليمات البرمجية الجديدة، بما في ذلك اختبارات الوحدات الصغيرة أو الاختبارات الوظيفية المعقدة.

مع نمو تطبيقك بشكل أكبر واستخدامه للعديد من الوحدات المختلفة، تصبح حزم بايثون مكونًا حاسمًا لتحسين بنية التعليمات البرمجية الخاصة بك.

مكتبات بايثون

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

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

هناك الآلاف من المكتبات المفيدة المتاحة اليوم. سأقدم بعض الأمثلة فقط:

  • Matplotlib: هي مكتبة قياسية لإنشاء تصورات البيانات في بايثون. وهو يدعم إنشاء رسوم بيانية أساسية ثنائية الأبعاد بالإضافة إلى تصورات متحركة وتفاعلية أكثر تعقيدًا.
  • PyTorch: هي مكتبة مفتوحة المصدر للتعلم العميق أنشأها مختبر أبحاث الذكاء الاصطناعي التابع لفيسبوك لتنفيذ شبكات عصبية متقدمة وأفكار بحثية متطورة في الصناعة والأوساط الأكاديمية.
  • pygame: يوفر للمطورين الكثير من الميزات والأدوات الملائمة لجعل تطوير اللعبة مهمة أكثر سهولة.
  • Beautiful Soup: هي مكتبة بايثون مشهورة جدًا للحصول على البيانات من الويب. تساعد الوحدات والحزم الموجودة داخل هذه المكتبة في استخراج المعلومات المفيدة من ملفات HTML وXML.
  • Requests: هو جزء من مجموعة كبيرة من المكتبات المصممة لتسهيل طلبات Python HTTP. توفر المكتبة تابع JSON يساعدك على تجنب إضافة سلاسل الاستعلام يدويًا إلى عناوين URL الخاصة بك.
  • missingno: مفيد جدًا للتعامل مع نقاط البيانات المفقودة. فهو يوفر تصورات إعلامية حول القيم المفقودة في إطار البيانات، مما يساعد علماء البيانات على اكتشاف المناطق التي بها بيانات مفقودة. إنها مجرد واحدة من مكتبات بايثون العديدة الرائعة لتنظيف البيانات.

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

أطر بايثون

على غرار المكتبات، تعد أطر عمل بايثون عبارة عن مجموعة من الوحدات والحزم التي تساعد المبرمجين على تتبع عملية التطوير بسرعة. ومع ذلك، فإن الأطر عادةً ما تكون أكثر تعقيدًا من المكتبات. فبينما تحتوي المكتبات على حزم تؤدي عمليات محددة، تحتوي الأطر على التدفق الأساسي وهندسة التطبيق.

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

للحصول على فهم أفضل، دعونا نراجع العديد من الأطر الشائعة:

  • Django: هو إطار عمل بايثون لبناء تطبيقات الويب بأكواد قليلة. مع تضمين جميع الميزات الضرورية افتراضيًا، يمكن للمطورين التركيز على تطبيقاتهم بدلاً من التعامل مع العمليات الروتينية.
  • Flask: هو إطار عمل لتطوير الويب معروف بتصميمه الخفيف والمعياري. حيث يحتوي على العديد من الميزات المبتكرة وقابل للتكيف بسهولة مع متطلبات محددة.
  • Bottle: هو إطار عمل آخر خفيف الوزن لتطوير الويب كان مخصصًا في الأصل لبناء واجهات برمجة التطبيقات. وتتمثل ميزاته الفريدة في أنه لا يحتوي على أي تبعيات بخلاف مكتبة Python القياسية ويقوم بتنفيذ كل شيء في ملف مصدر واحد.

تسمح أطر عمل بايثون للمبرمجين بتبسيط عملية تطوير الويب من خلال توفير الأساس الضروري مع الحفاظ على المرونة. لا عجب أن تستفيد أفضل التطبيقات – بما في ذلك Netflix، وAirbnb، وReddit، وUdemy – من فوائد أطر عمل Python.


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading