شرح ___name___== “___main___”

عندما نقوم بتشغيل برنامج بايثون من الطرفية مباشرة باستخدام الأمر 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()

وهكذا يمكنك من جعل الكود قابل للاستخدام من جديد

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation