• 0

ما الغرض من الأمر if __name__ == "__main__" في بايثون

ما الغرض من الامر التالي :
if __name__ == "__main__":
كما في الكود التالي :

if __name__ == "__main__":

lock = thread.allocate_lock()

thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

باختصار شديد
في لغات البرمجة مثل مثلا C# يكون هناك دالة رئيسية يتم استدعائها عند ارسال الكود الى المترجم Compiler ويطلق عليها الدالة main()

ولكن بايثون لغة برمجية نصية تستخدم المفسرات Interpreter ويتم التنفيذ سطر بسطر وعند استدعاء ملف Module به العديد من الدوال والكلاس وتريد أن تستخدم أحد هذه الدوال او الكلاسات فقط فيتم وضع هذه العبارة داخل المف المستدعى 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

هذا السطر مسئول عن التحقق مما إذا كان الملف تم تنفيذه (تشغيله) أم تم إستدعائه في ملف بايثون آخر (وكأنه مكتبة)

ويمكنك أن تقوم بتطبيق المثال التالي لكي تفهم أكثر.

أولًا قم بعمل ملفين بايثون الأول اسمه first.py والثاني اسمه second.py ولن نضع في كل ملف دالة print بسيطة تعمل عند تشغيل الملف كالتالي:

# first.py
print('First file')


# second.py
print('Second file')

بالتأكيد عند تشغيل كل ملف من الملفين السابقين سيتم طباعة الجملة التي بداخله، الآن لنقم بتعديل الملف الأول first.py ليكون محتواه كالتالي:

import second

print('First file')

كل ما قمنا به هو إستدعاء الملف الثاني بداخل الملف الأول، الآن لنقم بتشغيل الملف الأول python first.py وستجد أن النتيجة كالتالي:

Second file
First file

لاحظ هنا أنه تم تنفيذ الملف الثاني بمجرد إستدعائه وليس هذا ما نريده، ولكي نتجنب هذا الأمر نقوم بإستخدام السطر التالي في الملف الثاني:

if __name__ == "__main__":
	print('Second file')

هنا نقوم بالتحقق مما إذا كان الملف الثاني يتم تشغيله بطريقة مباشرة (True) أم تم إستدعائه في ملف آخر (False).

ويتم إستخدام هذه الطريقة في أغلب الحزم والمكتبات التي تقوم بتثبيتها لديك من خلال pip.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن