چطور از یک متغیر سراسری در یک تابع استفاده کنیم؟
How to use a global variable in a function?
من یک متغیر سراسری (global variable) در پایتون دارم و میخوام از اون داخل یک تابع استفاده کنم. اما وقتی داخل تابع سعی میکنم این متغیر رو تغییر بدم، خطا میگیرم که میگه این متغیر تعریف نشده. چطور میتونم این مشکل رو حل کنم و از متغیر سراسری داخل تابع استفاده کنم؟
برای استفاده از یک متغیر سراسری (global) در یک تابع در پایتون، باید با استفاده از کلمه کلیدی global قبل از استفاده از متغیر در داخل تابع، به پایتون بگی که این متغیر سراسری هست و قراره به همون متغیر جهانی خارج از تابع دسترسی داشته باشی.
به طور ساده، اگر شما بخوای مقدار یک متغیر جهانی رو داخل تابع تغییر بدی، این کار رو باید اینطور انجام بدی:
x = 10 # This is a global variable def my_function(): global x # Declare x as global to modify it x = 5 # Now this changes the global x my_function() print(x) # This will print 5, since x was modified globally
داخل تابع my_function، با استفاده از global x، به پایتون اعلام کردی که میخوای از متغیر x سراسری استفاده کنی و اون رو تغییر بدی. بدون این کلمه کلیدی، اگر سعی کنی مقدار x رو تغییر بدی، پایتون فکر میکنه که x یه متغیر محلیه و خطا میده که x هنوز تعریف نشده.
اگه فقط بخوای مقدار متغیر سراسری رو داخل تابع بخونی و قصد تغییرش رو نداری، نیازی به استفاده از `global` نیست:
x = 10 # This is a global variable def my_function(): print(x) # This will print 10 my_function()
این کد فقط مقدار x رو چاپ میکنه، بدون اینکه نیاز باشه global رو استفاده کنی، چون فقط میخوای بخونیش و تغییرش ندی.