الثلاثاء، 2 ديسمبر 2014

شرح ___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()
وهكذا يمكنك من جعل الكود قابل للاستخدام من جديد

ليست هناك تعليقات:

إرسال تعليق

جلب البيانات من صفحة ويب باستخدام Selenium

  في هذا الدرس، سننشئ أداة لاستخراج البيانات من أي موقع ويب باستخدام Selenium. Selenium هو مشروع مفتوح المصدر يستخدم لأتمتة المتصفحات. وهو ي...