افهم نطاق المتغيرات العامة في بيثون

Understand Global Variables Scope Python



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

مثال 1: استخدام بسيط لمتغير عام

يوضح المثال التالي الاستخدام البسيط للمتغير الشامل داخل الوظيفة وخارجها. هنا ، المتغير الشامل المسمى نص يستخدم لتعيين سلسلة البيانات. تم تسمية وظيفة مخصصة printMessage () يتم تعريفه لطباعة قيمة المتغير العام. قيمة نص تتم طباعة المتغير داخل الوظيفة وخارجها بعد تغيير القيمة.







#! / usr / bin / env python3

# تحديد متغير عالمي
نص= 'مرحبًا بك في LinuxHint'

# تحديد وظيفة
defprintMessage():

# اطبع المتغير العام من الوظيفة
مطبعة(المتغير العام داخل الوظيفة:ن'ونص)

# استدعاء الوظيفة
printMessage()

# تغيير قيمة المتغير العام
نص= تعلم برمجة بايثون

# اطبع القيمة الحالية للمتغير العام
مطبعة(المتغير العالمي خارج الوظيفة:ن'ونص)

انتاج:



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







مثال 2: استخدام متغير عام ومحلي بنفس الاسم

إذا كنت تريد التصريح عن اسم متغير داخل دالة تم الإعلان عنها بالفعل كمتغير عام في بيثون وتريد استخدام المتغير ، فسوف يتعامل مع المتغير على أنه متغير محلي وينتج عنه خطأ. سيظهر البرنامج النصي التالي الخطأ. هنا، النص يتم تعريف المتغير على أنه متغير عالمي ومحلي.

#! / usr / bin / env python3

# تحديد متغير عالمي
نص= 'أنا أحب بايثون'

# تحديد وظيفة
defprintMessage():
مطبعة(نص)

نص= 'أحب PHP'

# استدعاء الوظيفة
printMessage()

انتاج:



سيظهر الإخراج التالي بعد تشغيل البرنامج النصي.

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

#! / usr / bin / env python3

# تحديد متغير عالمي
نص= 'أنا أحب بايثون'

# تحديد وظيفة
defprintMessage():
# ديجين القيمة المحلية
نص= 'أحب PHP'
# طباعة النص المتغير المحلي
مطبعة(قيمة 'النص' داخل وظيفة:ن'ونص)

# استدعاء الوظيفة
printMessage()

# طباعة النص المتغير العام
مطبعة(قيمة 'النص' خارج الوظيفة:ن'ونص)

انتاج:

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي.

مثال 3: استخدام المتغير الشامل داخل التابع

يوضح المثال السابق أن المتغير العام لا يمكن الوصول إليه داخل دالة. يمكنك استخدام العالمية الكلمة الأساسية للوصول إلى متغير عالمي من أي وظيفة. في النص التالي ، cal_percentage () يتم تعريف الدالة لحساب النسبة المئوية لأي رقم يتم فيه استخدام المتغيرات العالمية والمحلية. هنا، على واحد هو متغير عالمي ، و perVal هو متغير محلي. عالمي يتم استخدام الكلمة الأساسية هنا لتحديد المتغير الشامل داخل الوظيفة ويتم تغيير قيمة المتغير الشامل داخل الوظيفة.

#! / usr / bin / env python3

# خذ قيمة عدد صحيح
على واحد= int(إدخال('أدخل رقما : '))

# تحديد الوظيفة
defسعر_النسبة المئوية():
# التعرف على المتغير الشامل باستخدام الكلمة الأساسية العالمية
عالميعلى واحد

# خذ قيمة عدد صحيح كنسبة مئوية
perVal= int(إدخال('أدخل قيمة النسبة المئوية:'))

# احسب قيمة النسبة المئوية
نتيجة= تطفو((سواء * perVal)/100)

# طباعة النتيجة المنسقة
مطبعة('٪ d نسبة٪ d =٪ f'٪(perValوعلى واحدونتيجة))

# تغيير قيمة المتغير الشامل
على واحد= 500

# اطبع قيمة المتغير العام قبل استدعاء الوظيفة
مطبعة('نقيمة الأسطوانات =٪ d '٪على واحد)

# استدعاء الوظيفة
سعر_النسبة المئوية()

# اطبع قيمة المتغير العام بعد استدعاء الوظيفة
مطبعة('نقيمة الأسطوانات =٪ d '٪على واحد)

انتاج:

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي. هنا ، يتم حساب وطباعة 10٪ من 350.

مثال 4: استخدام متغيرات عامة من نص برمجي آخر

يوضح المثال التالي كيف يمكن استخدام المتغير العام المعلن في نص برمجي آخر في نص برمجي آخر. افترض أن اسم الملف هو global6.py التي ستستخدم المتغيرات العامة المحددة في الملف المسمى global5.py . تم الإعلان عن ثلاثة متغيرات عالمية في global5.py . عليك استيراد ملفات عالمي 5 لاستخدام المتغيرات في نص برمجي آخر. نص global6.py سيحسب راتب ثلاثة أنواع من الموظفين بناءً على قيم الإدخال والمتغيرات العالمية.

#! / usr / bin / env python3
# هذا ملف global5.py

# هيكل الرواتب الأساسي للشركة
أساسي= 5000
طبي= 500
المواصلات= 500 #! / usr / bin / env python3
# هذا ملف global6.py

# استيراد المتغيرات العالمية من global5.py
يستوردعالمي 5

# خذ اسم الموظف
اسم= إدخال('أدخل اسم الموظف:')
# خذ اسم الوظيفة
بريد= إدخال('أدخل المنشور:')

# تهيئة متغير الخطأ
خطأ= خاطئة

# تحقق من الوظيفة وحدد الراتب الأساسي على أساس البريد
لو(بريد.العلوي() == 'المدير التنفيذي'):
أساسي=عالمي 5.أساسي+(عالمي 5.أساسي*0.4)
أليف(بريد.العلوي() == 'إدارة'):
أساسي=عالمي 5.أساسي+(عالمي 5.أساسي*0.25)
أليف(بريد.العلوي() == 'محاسب'):
أساسي=عالمي 5.أساسي+(عالمي 5.أساسي*0.15)
آخر:
# اضبط الخطأ على صحيح إذا لم يتم العثور على قيمة المشاركة
خطأ= حقيقي

# اطبع الراتب إذا كان الخطأ فاضحًا
لو (خطأ== خاطئة):
راتب=أساسي + عالمي 5.طبي+ عالمي 5.المواصلات
مطبعة('راتب٪ s هو٪ d'٪(اسموراتب))
آخر:
مطبعة('لم يتم العثور على المشاركة')

انتاج:

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي. هنا ، يتم تشغيل البرنامج النصي مرتين مع منشور صالح ومشاركة غير صالحة.

استنتاج:

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

شاهد فيديو المؤلف: هنا