علي عون نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 ما الغرض من الامر التالي : if __name__ == "__main__": كما في الكود التالي : if __name__ == "__main__": lock = thread.allocate_lock() thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock)) اقتباس
1 سامح أشرف نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 هذا السطر مسئول عن التحقق مما إذا كان الملف تم تنفيذه (تشغيله) أم تم إستدعائه في ملف بايثون آخر (وكأنه مكتبة) ويمكنك أن تقوم بتطبيق المثال التالي لكي تفهم أكثر. أولًا قم بعمل ملفين بايثون الأول اسمه 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 اقتباس
0 Nasser Salem2 نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 باختصار شديد في لغات البرمجة مثل مثلا C# يكون هناك دالة رئيسية يتم استدعائها عند ارسال الكود الى المترجم Compiler ويطلق عليها الدالة main() ولكن بايثون لغة برمجية نصية تستخدم المفسرات Interpreter ويتم التنفيذ سطر بسطر وعند استدعاء ملف Module به العديد من الدوال والكلاس وتريد أن تستخدم أحد هذه الدوال او الكلاسات فقط فيتم وضع هذه العبارة داخل المف المستدعى 1 اقتباس
السؤال
علي عون
ما الغرض من الامر التالي :
if __name__ == "__main__":
كما في الكود التالي :
if __name__ == "__main__":
lock = thread.allocate_lock()
thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.