بايثون هي لغة مفتوحة المصدر، وهذا يعني أن التطورات الحالية والجديدة متاحة مجانًا للجميع. يمكن لأي شخص كتابة بعض التعليمات البرمجية ثم إتاحتها للآخرين لتنزيلها وتثبيتها واستخدامها. قد تجد هذه البرامج يشار إليها باسم وحدات بايثون أو حزم بايثون. ولكن ما الفرق بين هذين المصطلحين؟ سنستكشف هذا السؤال في هذه المقالة.
كمبتدئ، من الشائع أن تسمع مصطلحات لا تفهمها – مثل حزمة بايثون مقابل وحدة بايثون. لدينا مقالتان تصفان 20 من أهم المصطلحات التي قد تسمعها. ستمنحك هذه المقالة أساسًا جيدًا، لذا تحقق من مصطلحات بايثون التي يجب أن يعرفها كل مبتدئ الجزء 1 والجزء 2.
العديد من الوحدات تشكل حزمة
تجعل الوحدات والحزم الأكواد قابلة لإعادة الاستخدام بين العديد من الأشخاص. يمكنك كتابة وحدة لحساب مساحة الأشكال المختلفة. ويمكنك إعطاء هذه الوحدة لأصدقائك حتى يتمكنوا من استخدامها دون الحاجة إلى إعادة كتابة كل التعليمات البرمجية. وهذا يوفر الوقت والجهد ويساعد في تجنب الأخطاء.
وحدة بايثون هي أي ملف بايثون واحد. اسم الوحدة هو نفس اسم الملف (بدون امتداد .py). إذا كان لديك بعض الدوال لحساب مساحة الأشكال، فيمكن كتابتها في الملف areas.py، الذي يشكل وحدة تسمى areas.
حزمة بايثون عبارة عن مجموعة من وحدات بايثون في دليل. إذا أردنا إضافة وحدة أخرى لحساب أحجام الأشكال، فيمكننا وضع هذا الكود في volumes.py، وحفظ الملف في نفس الدليل مثل areas.py، وإنشاء ملف __init__.py. و ستكون هذه حزمة بايثون.
بالمناسبة، ملف __init__.py يميز حزمة بايثون عن الدليل العادي الذي يحتوي على العديد من ملفات بايثون.
أخيرًا، ربما سمعت أيضًا عن مصطلح مكتبة بايثون. المكتبة عبارة عن مجموعة من حزم بايثون.
استيراد حزم بايثون
توجد حزم بايثون لكل شيء تقريبًا. إذا كنت مهتمًا بتحليل البيانات، فيجب أن تعرف حزم بايثون NumPy وpandas وscikit-learn وMatplotlib (على سبيل المثال لا الحصر). لقد ناقشنا بعضًا منها في مقالتنا حول حزم بايثون الأكثر شيوعًا. بالنسبة لعلماء البيانات الطموحين، لدينا مقال آخر حول أفضل 15 مكتبة بايثون لعلم البيانات. أو إذا كنت مهتمًا باستخراج البيانات من الويب، فقد تكون على دراية بحزم مثل Requests أو BeautifulSoup أو Selenium.
دعنا نلقي نظرة عن كثب على Matplotlib، وهي مفيدة لتصور البيانات. الطريقة الأبسط لاستيراد هذه المكتبة هي كما يلي:
>>> import matplotlib
في كل مرة تريد فيها استخدام وحدة في matplotlib، عليك أن تبدأ بكتابة matplotlib.<module_name>
لتوفير بعض الكتابة، يمكنك القيام بما يلي:
>>> import matplotlib as mpl
لاستخدام وحدة pyplot
(التي تساعدك على تطوير تصورات البيانات)، ابدأ بكتابة mpl.pyplot
. ستحتاج في الغالب إلى الوصول إلى دالة معينة داخل الوحدة. لرسم مخطط شريطي، يمكنك كتابة …
>>> mpl.pyplot.bar(x, height)
حيث x والارتفاع هما الوسيطتان المطلوبتان. إذا كنت تخطط لرسم العديد من المخططات الشريطية، فيمكنك استيراد الوحدة مباشرةً؛ وهذا يجعل الوصول إلى دالة bar()
أسهل:
>>> import matplotlib.pyplot as plt
>>> plt.bar(x, height)
إنشاء وحدة وحزمة بايثون خاصة بك
إن التمرين الجيد هو إنشاء وحدة وحزمة خاصة بك. ابدأ بإنشاء دليل جديد يسمى shapes. ثم أنشئ ملف __init__.py
واتركه فارغًا الآن. سنعود إلى هذا الملف الغريب لاحقًا.
ستكون الوحدة الأولى هي areas.py. قم بإنشاء هذا الملف واكتب الدالة التالية:
def area_of_circle(r):
pi = 3.14
area = pi * (r**2)
return area
ستكون الوحدة التالية هي volumes.py. مرة أخرى، قم بإنشاء هذا الملف واكتب الدالة التالية:
def volume_of_sphere(r):
pi = 3.14
volume = (4./3.) * pi * (r**3)
return volume
لاستخدام الدالة volume_of_sphere()
في جزء آخر من التعليمات البرمجية، قم بما يلي:
>>> import shapes.volumes as sv
>>> sv.volume_of_sphere(2)
33.49333333333333
ماذا عن __init__.py؟
في المثال الأخير، قمنا باستيراد وحدة volumes مباشرةً. حاول استيراد هذه الحزمة ثم استدعاء الدالة من الوحدة:
>>> import shapes
>>> shapes.volumes.volume_of_sphere(2)
سوف تحصل على رسالة الخطأ التالية:
AttributeError: module 'shapes' has no attribute 'volumes'
يمكن معالجة هذه المشكلة عن طريق استيراد وحداتنا في __init__.py
. لن نتطرق إلى تفاصيل هذا الملف، ولكن في الممارسة العملية، يتم تشغيله عند استيراد الحزمة. افتح __init__.py
وأضف السطر التالي:
import shapes.volumes
احفظ التغييرات، ثم افتح وحدة تحكم بايثون جديدة وحاول استيراد الحزمة مرة أخرى:
>>> import shapes
>>> shapes.volumes.volume_of_sphere(2)
33.49333333333333
الآن يمكننا استيراد الحزمة بأكملها أو الوحدات الفردية (كما فعلنا أعلاه مع Matplotlib). وهذا كل شيء! لقد أنشأت وحدة وحزمة خاصةبك !
الآن بعد أن أصبحت تفهم وحدات وحزم بايثون …
إلى أين تذهب من هنا؟
لقد ناقشنا الفرق بين وحدات وحزم Python وعرضنا بعض الأمثلة. إن الاستفادة الكاملة من حزم Python ستجعل برمجتك أسهل وأكثر موثوقية، ولهذا السبب غالبًا ما نناقش أفضل حزم Python المتاحة لحالات استخدام مختلفة.
اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.