كيفية التحقق من وجود متغير في بايثون

اليوم ، سنرى كيف نتحقق مما إذا كان المتغير موجودًا أم لا. في بايثون ، يمكن تعريف متغير إما عالميًا أو محليًا.

إذا تم تعريف متغير داخل دالة ، فسيكون له نطاق محلي. خلاف ذلك (معرّفة خارج أي دالة) ، لها نطاق عالمي. دعونا نرى كيف نتحقق من وجودهم واحدًا تلو الآخر.



وجود متغير محلي

سوف نستخدم ملف السكان المحليين () طريقة لمعرفة ما إذا كان المتغير موجودًا محليًا. ال السكان المحليين () تقوم الطريقة بإرجاع قاموس للمتغيرات المحلية للنطاق الحالي. لنأخذ مثالا.

summ=4
def test(c):
  a = 3
  b = 4
  result = a + b + c
  if 'result' in locals():
    print("The result variable exists in the local scope. Value is:", result)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
  if 'summ' in locals():
    print("The summ variable exists in the local scope. Value is:", summ)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
test(4)

The result variable exists in the local scope. Value is: 11
Sorry, the variable does not exist in the local scope.

في المثال أعلاه ، نقوم بإنشاء ملف اختبار() وظيفة. يحسب مجموع ثلاث قيم ويخزنه في ملف نتيجة عامل.

ثم يتحقق مما إذا كان نتيجة موجود في النطاق المحلي أم لا. منذ ذلك الحين ، يتم تقييم الحالة إلى حقيقي والبيان في كتلة if يعمل.

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

وجود متغير عالمي

للتحقق من وجود متغير عالمي ، سنستخدم الامتداد جلوبالس () طريقة. تقوم بإرجاع قاموس يحتوي على المتغيرات العامة للنطاق الحالي. لنأخذ مثالا.

summ=4
def test(c):
  a = 3
  b = 4
  result = a + b + c
  if 'result' in globals():
    print("The result variable exists in the local scope. Value is:", result)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
  if 'summ' in globals():
    print("The summ variable exists in the local scope. Value is:", summ)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
test(4)

انتاج |

Sorry, the variable does not exist in the local scope.
The summ variable exists in the local scope. Value is: 4

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