شرح ___name___== “___main___”

0
عندما نقوم بتشغيل برنامج بايثون من الطرفية مباشرة باستخدام الأمر python script.py $
فنحن بذلك نريد تعيين نقطة بداية السكريبت يعني أن مفسر اللغة يقوم بتشغيل البرنامج انطلاقا من السطر الأول ثم ينتقل الى السطر الثاني وهكذا....

import module

def my_function():
# الكود هنا

x = my_function()




ولكن اذا كنت تريد أن تجعل من الكود الخاص بك أكثر تنظيما  شاهد المثال التالي :
import module

def my_function():
# code here

def main():
x = my_function()

# البرنامج يبدأ من هنا
main()

هذا جيد ولكن المشكلة الوحيدة هي عند استدعاء سكريبت من خلال سكريبت أخر أو from module import * حيث يقوم المفسر بتشغيل الدالة main() ولكن في حالتنا هذه لا أنصحك بها لأنه يجب استدعاء الدالة main() الا عندما يتم تنفيذ برنامجنا الرئيسي أولا ويمكننا تحقيق ذلك الا باستخدام

__name__ == “__main__”
 
 
 
حيث يقوم هذا السطر بتنفيذ ماتحته اذا تم تشغيل الكود مباشرة ومن دون خاصية الاستيراد

import module

def my_function():
# code here

def main():
x = my_function()

# the program starts from here
if __name__ == "__main__":
main()
وهكذا يمكنك من جعل الكود قابل للاستخدام من جديد

لا يوجد تعليقات

أضف تعليق