الوظيفة الرئيسية لـ Python

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

وظيفة البايثون الرئيسية

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

print("Hello")

print("__name__ value: ", __name__)


def main():
    print("python main function")


if __name__ == '__main__':
    main()
  • عند تنفيذ برنامج بايثون ، يبدأ مترجم البايثون في تنفيذ الكود داخله. كما يقوم أيضًا بتعيين قيم متغيرات ضمنية قليلة ، واحدة منها هي __name__ والتي تكون قيمتها __main__.

  • بالنسبة للدالة الرئيسية في بايثون، يجب أن نقوم بتعريف الدالة ثم استخدام شرط if __name__ == '__main__' لتنفيذ هذه الدالة.

  • إذا تم استيراد ملف مصدر بايثون كـ وحدة، يقوم مفسر بايثون بتعيين قيمة __name__ إلى اسم الوحدة، لذا سيعيد الشرط false ولن يتم تنفيذ الأسلوب الرئيسي.

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

    def main1():
        print("وظيفة بايثون الرئيسية")
    
    
    if __name__ == '__main__':
        main1()
    

الصورة أدناه توضح الإخراج عند تنفيذ python_main_function.py كملف مصدر.

الوظيفة الرئيسية لـ Python كوحدة

الآن دعونا نستخدم ملف المصدر Python أعلاه كوحدة واستيراده في برنامج آخر. python_import.py

import python_main_function

print("Done")

الآن عند تنفيذ البرنامج أعلاه ، يتم إنتاج الإخراج أدناه.

Hello
__name__ value:  python_main_function
Done

لاحظ أن أول سطرين يتم طباعتهما من ملف المصدر python_main_function.py . لاحظ أن قيمة __name__ مختلفة وبالتالي لم يتم تنفيذ الطريقة الرئيسية. لاحظ أن تعليمات برنامج Python يتم تنفيذها سطراً بسطر ، لذا من المهم تعريف الطريقة الرئيسية () أولاً قبل الشرط if لتنفيذ الطريقة الرئيسية. وإلا فستحصل على خطأ كما NameError: name 'main' is not defined . هذا كل شيء عن وظيفة Python الرئيسية. المرجع: Python Docs

Source:
https://www.digitalocean.com/community/tutorials/python-main-function