شرح ___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()

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

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

كيفية انشاء حزمة بايثون

عندما يكون لديك العديد من الصفوف classes أو ال modules و تريد ان تنظمها على شكل حزم خاصة اذا كان لديك مشروع ينمو بسرعة كبيرة فمن الحكمة ان ننظمها في حزم وهذه العلمية تشبه وضع الصفوف classes و ال modules في نفس الدليل ومن أجل كل هذا سنقوم بشرح طريقة انشاء الحزم في بايثون .




خطوات لانشاء الحزم في بايثون

  • انشاء دليل وتسميته باسم الحزمة المراد انشاءها
  • وضع جميع الصفوف داخل الدليل 
  • انشاء ملف __init__.py داخل الدليل

هذا كل شئ الطريقة  جد سهلة ولا تتطلب عملية معقدة والملف__init__.py ضروري لان بايثون سيعرف بواسطته ان هذا الدليل عبارة عن حزمة بايثون وليس مجرد دليل او ملف  يحتوي على صفوف وملفات.
على كل حال ماسنقوم بكتابته على هذا الملف هو عبارات استيراد import جميع الصفوف الى حزمتنا.


انشاء حزمة بايثون
سنقوم باشاء حزمة ونقوم بتسميتها Animals حيث تحتوي على 2  module ونقوم بتسميتهما Mammals و Birds .

  1.  انشاء دليل خاص بالحزمة

أولا نقوم بانشاء ديلي ونقوم بتسميته Animals


2.اضافة صفوف
الان نقوم بانشاء مصفوفتين، اولا نقوم بانشاء ملف Mammals.py داخل الدليلونقوم بكتابة الكود التالي بداخله.

class Mammals:
    def __init__(self):
        ''' Constructor for this class. '''
        #انشاء مجموعة من الحيونات 
        self.members = ['Tiger', 'Elephant', 'Wild Cat']
 
 
    def printMembers(self):
        print('Printing members of the Mammals class')
        for member in self.members:
            print('t%s ' % member)

الكود جد سهل حيث لدينا مصفوفة تحتوي على مجموعة من الحيوانات ونقوم بعرض تلك المجموعة .
ملاحظة : عند انشاء حزم بايثون يجب استراد المصفوفات عبر دالة import ولا يمكن تنفيذها مياشرة .

الان نقوم بانشاء ملف اخر ونقوم بتسميته Birds.py ونضعه داخل الدليل Animals ونقوم بكتابة الكود التالي بداخله .

class Birds:
    def __init__(self):
        ''' Constructor for this class. '''
        # انشاء مجموعة من الحيوانت 
        self.members = ['Sparrow', 'Robin', 'Duck']
 
    def printMembers(self):
        print('Printing members of the Birds class')
        for member in self.members:
           print('t%s ' % member)

هذاالكود مشابه للكود الأول .
3 اضافة ملف __init__.py الى الدليل
بعد انشاء هذا الملف نقوم بكتابة الكود التالي بداخله .

from Mammals import Mammals
from Birds import Birds

هذ اكل شيء وهكذا قمنا بانشاء حزمة اسمها Animals ولكي نقوم باختبارها نقوم بانشاء ملف test.py على نفس الدليل السابق ونقوم بكتابة الكود التالي بداخله .

# استراد المصفوفات 
from Animals import Mammals
from Animals import Birds
 
# انشاء كائن للمصفوفة 
myMammal = Mammals()
myMammal.printMembers()
 
# انشاء كائن 
myBird = Birds()
myBird.printMembers()
أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع