Avatar ·

لماذا المتغير العام غير متاح من الدالة؟

📁 وظيفة, بايثون, ذكاء اصطناعي

أرجو التوضيح لماذا لا تطبع الدالة قيمة s في وحدة التحكم

s = ""I'm global variable""def foo():    print(s)    s = 'Reset global variable'foo()

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

لكن النتيجة هي ظهور رسالة الخطأ التالية في وحدة التحكم:

Traceback (most recent call last):  File ""index.py"", line 7, in <module>    foo()  File ""index.py"", line 4, in foo    print(s)UnboundLocalError: loca