مقدمة
Python هي واحدة من لغات البرمجة الأكثر استخدامًا في جميع أنحاء العالم. الوحدات جزءًا مهمًا من كود Python. الوحدة هي ببساطة .py ملف في سياق Python 3. هذا يعني أنه يمكنك الإشارة إلى أي ملف Python كوحدة.
من الممكن لك الحصول على هذه الوحدات من خلال المكتبة المعدة مسبقًا. يمكنك إلقاء نظرة على Python Standard Library لمعرفة المزيد. يتم تثبيت هذه الوحدات على نظامك عند تثبيت Python. في حالات أخرى، يمكنك تثبيت هذه الوحدات باستخدام مدير حزم Python pip. ولكن ماذا لو كنت تريد إنشاء وحدة مخصصة؟ إذا كان الأمر كذلك، فسيسعدك معرفة أنه يمكنك إنشاء وحداتك الخاصة في Python.
في هذا الدليل التفصيلي، سنوضح الخطوات التي تحتاج إلى اتباعها لكتابة واستيراد الوحدات في Python 3.
المتطلبات الأساسية
قبل أن نبدأ، ستحتاج إلى التأكد من تثبيت Python 3 وإعداد بيئة برمجة. يمكنك اتباع الدرس التعليمي الخاص بنا حول تثبيت Python 3 وإعداد بيئة برمجة محلية على Ubuntu 16.04 لإكمال التثبيت في حال لم يكن جاهزًا لديك.
كيف تكتب وحدة برمجية؟
دعنا نبدأ بكتابة وحدة. ستكتب وحدة تمامًا كما تكتب أي ملف Python آخر. تتكون الوحدة النموذجية من تعريفات الدوال والفئات والمتغيرات. بعد ذلك، يمكنك استخدام الوحدة لتطبيقها على برامج Python الأخرى.
لمساعدتك على الفهم، دعنا نأخذ مثالاً. لنفترض أننا نريد إنشاء ملف باسم hello.py. سنقوم لاحقًا باستيراد هذا إلى ملف آخر أيضًا. الخطوة الأولى في العملية هي إنشاء دالة. ستعمل هذه الدالة على طباعة Hello, World! هكذا:
|
1 2 3 |
# تعريف دالة def world(): print("Hello, World!") |
في هذه المرحلة، تشغيل الأمر python hello.py لن يعطيك أي نتيجة. هذا لأننا لم نعطِ أي تعليمات للبرنامج بعد. لجعله يعمل، نحتاج إلى استيراد الوحدة.
كيفية استيراد وحدة؟
من أجل استيراد وحدتك لجعلها دالة، تحتاج إلى إنشاء ملف ثانٍ في نفس الدليل. سنطلق على هذا الملف الجديد اسم main_program.py. السبب في وجوب وجود كلا الملفين في نفس الدليل هو أننا بحاجة إلى توجيه البرنامج إلى مكان العثور على الوحدة. ينطبق هذا على أي وحدة مخصصة جديدة ليست مدمجة:
|
1 2 3 4 5 |
# استيراد وحدة hello import hello # استدعاء الدالة hello.world() |
لقد استخدمنا تدوين النقطة لاسم الوحدة لاستدعاء الدالة. طريقة أخرى للقيام بذلك هي استخدام طريقة from...import . هنا، سنستدعي الدالة كـ world() عن طريق استيراد الوحدة كـ from hello import world. أخيرًا، يمكنك تشغيل الأمر:
|
1 |
python main_program.py |
سيعرض لك الأمر المخرجات التالية:
|
1 2 |
المخرجات: Hello, World! |
إضافة متغيرات إلى وحدة
بعد ذلك، سنرى كيفية إضافة متغيرات إلى الوحدة عن طريق وضع التعريفات في الوحدة:
|
1 2 3 4 5 6 |
# تعريف دالة def world(): print("Hello, World!") # تعريف متغير shark = "Sammy" |
لاحقًا، ستقوم باستدعاء المتغير في دالة print() . سنستدعيه داخل ملف main_program.py :
|
1 2 3 4 5 6 7 |
# استيراد وحدة hello import hello # استدعاء الدالة hello.world() # طباعة المتغير print(hello.shark) |
سيظهر تشغيل البرنامج هذه المخرجات:
|
1 2 3 |
المخرجات: Hello, World! Sammy |
إضافة فئة إلى وحدة
أخيرًا، سنرى كيف يمكنك تعريف فئة في ملفك للوحدة. استمرارًا لمثالنا، سنقوم بإنشاء فئة جديدة تسمى Octopus في ملف hello.py . سنقوم أيضًا بتعيين سمات name و color. بعد ذلك، سنضيف دالة لجعلها قابلة للطباعة:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# تعريف دالة def world(): print("مرحباً، يا عالم!") # تعريف متغير shark = "سامي" # تعريف فئة class Octopus: def __init__(self, name, color): self.color = color self.name = name def tell_me_about_the_octopus(self): print("هذا الأخطبوط " + self.color + ".") print(self.name + " هو اسم الأخطبوط.") |
بعد ذلك، يجب عليك إضافة الفئة بالقرب من نهاية ملف main_program.py :
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# استيراد وحدة hello import hello # استدعاء الدالة hello.world() # طباعة المتغير print(hello.shark) # استدعاء الفئة jesse = hello.Octopus("جيسي", "برتقالي") jesse.tell_me_about_the_octopus() |
يمكنك استدعاء الفئة باستخدام الأمر hello.Octopus(). سيعرض لك هذا وظائف وسمات الفئة Octopus في نطاق أسماء الملف. وبناءً على ذلك، يمكنك كتابة jesse.tell_me_about_the_octopus() في السطر الأخير دون استدعاء hello. من الممكن أيضاً استدعاء سمة فردية للفئة دون استخدام hello. على سبيل المثال، يمكنك ببساطة تشغيل jesse.color. عند تشغيل البرنامج، سيعرض المخرجات التالية:
|
1 2 3 4 5 |
المخرجات: مرحباً, العالم! سامي هذا الأخطبوط يكون برتقالي. جيسي هو الـأخطبوط's اسم. |
تنفيذ الكود باستخدام الوحدات
حيث يمكنك استخدام الوحدات لتحديد التعريفات، يمكنك أيضاً استخدامها لتنفيذ الكود. لنفترض أننا نريد تنفيذ دالة world(). سنقوم بإعادة كتابة ملف hello.py الأولي بالكامل:
|
1 2 3 4 5 6 |
# تعريف دالة def world(): print("مرحباً، يا عالم!") # استدعاء الدالة داخل الوحدة world() |
من ملف main_program.py، سنقوم بحذف كل شيء باستثناء عبارة الاستيراد، تاركين ما يلي:
|
1 2 |
# استيراد وحدة hello import hello |
سيؤدي تشغيل ملف البرنامج الرئيسي إلى إعطائك هذه المخرجات نظراً لأن البرنامج ينفذ ويشغل دالة world() :
|
1 2 |
المخرجات: مرحباً, العالم! |
كيفية الوصول إلى وحدة من دليل آخر؟
الآن بعد أن عرفت كيفية إنشاء الوحدات وتعديلها، تحتاج إلى معرفة كيفية الوصول إليها من دليل آخر. هذا مفيد عندما تحتاج إلى استخدام وحدة معينة في مشروع آخر. هناك طريقتان للقيام بذلك سنوضحهما أدناه.
-
إلحاق المسارات
الطريقة الأولى هي تنشيط مسار الوحدة باستخدام ملفات البرمجة التي تستخدم الوحدة بالفعل. لسوء الحظ، القيام بذلك لا يعني أن الوحدة ستكون متاحة عبر النظام بأكمله. وبالتالي، فإنه يعتبر حلاً مؤقتاً فقط. وغالباً ما يتم استخدامه خلال مرحلة تطوير المشروع.
يمكنك بدء عملية الإلحاق عن طريق استيراد وحدة sys والوحدات الهامة الأخرى التي تحتاج إلى استخدامها. سنقوم باستيرادها إلى ملف البرنامج الرئيسي. يمكنك العثور على وحدة sys في مكتبة بايثون القياسية. أنت بحاجة إليها لأنها تحتوي على المعلمات والوظائف الأساسية الخاصة بنظامك.
لننظر في مثالنا السابق مرة أخرى. لنفترض أن ملف hello.py موجود في المسار /usr/sammy/ وملف main_program.py موجود في دليل آخر. سنقوم باستيراد وحدة hello في ملف main_program.py أولاً باستخدام وحدة sys. بعد ذلك، سنقوم بإلحاق /usr/sammy/ بالمسار:
|
1 2 3 4 5 6 |
import sys sys.path.append('/usr/sammy/') import hello ... |
إذا قمت بإعداد المسار بشكل صحيح، فإن ملف main_program.py سيعمل الملف بسهولة دون أخطاء. ستتلقى نفس المخرجات التي حصلت عليها عندما كان كلا الملفين في نفس الدليل.
-
مسار Python
الخيار الآخر الذي يمكنك اتخاذه هو مسار Python. هنا، ستقوم بإضافة الوحدة نفسها إلى مسار يتحقق منه Python بحثًا عن الوحدات والحزم. وكما يمكنك الاستنتاج على الأرجح، فإن هذا يجعل الوحدة متاحة على مستوى النظام بأكمله، مما يجعله حلاً دائمًا قابلاً للتطبيق.
للقيام بذلك، تحتاج إلى معرفة المكان الذي يبحث فيه Python عن الوحدات. سيتعين عليك تشغيل مفسر Python من بيئة البرمجة والتي تبدو كالتالي:
|
1 |
python |
الخطوة التالية هي استيراد sys الوحدة:
|
1 |
>>> import sys |
بعد ذلك، قم بطباعة مسار النظام:
|
1 |
>>> print(sys.path) |
الآن، سترى مسار النظام كمخرج لك. سيكون هناك مسار واحد على الأقل. ومع ذلك، قد يكون هناك العديد منها في بيئة البرمجة. في القائمة، حدد البيئة التي تستخدمها. ضع في اعتبارك أنك قد ترغب في إضافة الوحدة إلى مسار Python الرئيسي للنظام أيضًا. هذا هو الشكل الذي سيبدو عليه:
|
1 2 |
المخرجات: '/usr/sammy/my_env/lib/python3.5/site-packages' |
أخيرًا، انقل hello.py الملف إلى هذا الدليل واستورد الوحدة على النحو التالي:
|
1 2 |
import hello ... |
ستكون محاولتك ناجحة إذا قام البرنامج بتشغيل الملف دون إنتاج أي أخطاء. ونتيجة لهذه العملية، ستتمكن من الوصول إلى الوحدة من أي دليل على نظامك.
الخاتمة
كان الهدف من هذا البرنامج التعليمي هو مساعدتك في التعرف على كتابة وحدات Python. إنها تشبه إلى حد كبير كيفية كتابة أي ملف Python .py ملف. تحدثنا أولاً عن ماهية وحدة Python والميزات المرتبطة بها بالفعل. بعد ذلك، اكتشفنا كيفية تطبيق هذه التعريفات في ملفات برمجية أخرى في Python. وأخيرًا، عرفنا تفاصيل إمكانية الوصول إلى الوحدات. الآن أنت تعرف كيفية كتابة الوحدات في Python 3 بالإضافة إلى كيفية الوصول إليها.
لمزيد من البناء على معرفتك بلغة برمجة Python، راجع مدونتنا لمزيد من الموارد:
- Python 3: دليل حول تحويل أنواع البيانات
- الحلقات التكرارية في Python 3: استخدام عبارات Break و Continue و Pass
- استخدام منسقات النصوص في Python 3
حوسبة سعيدة!
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.