از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه حذف یک متغیر جهانی در پایتون
سرفصلهای مطلب
معرفی
در پایتون، متغیرهایی که خارج از تابع یا در فضای جهانی اعلام شده اند، به عنوان متغیرهای جهانی شناخته می شوند. این متغیرها توسط هر تابعی در برنامه قابل دسترسی هستند. با این حال، ممکن است مواردی وجود داشته باشد که بخواهید یک متغیر سراسری را در یک تابع حذف یا تغییر دهید. این بایت شما را در فرآیند انجام این کار راهنمایی می کند.
متغیرهای جهانی در پایتون
قبل از اینکه به چگونگی حذف یا تغییر یک متغیر سراسری بپردازیم، اجازه دهید لحظه ای را برای درک اینکه متغیر جهانی چیست، صرف کنیم. در پایتون، متغیری که خارج از یک تابع اعلام شده است، به عنوان متغیر جهانی شناخته می شود. این به این معنی است که متغیر را می توان از هر نقطه ای از کد – چه در یک تابع و چه خارج از آن – دسترسی داشت.
در اینجا یک مثال ساده از یک متغیر جهانی آورده شده است:
x = 10
def print_global():
print("The global variable is: ", x)
print_global()
خروجی:
The global variable is: 10
اینجا، x
یک متغیر سراسری است زیرا خارج از آن تعریف شده است print_global
تابع، اما هنوز هم می توان به آن در داخل تابع دسترسی داشت.
چرا یک متغیر جهانی را حذف کنیم؟
بنابراین ممکن است از خود بپرسید، چرا ما همیشه می خواهیم یک متغیر سراسری را حذف کنیم؟ خوب، در برنامه های بزرگ، متغیرهای سراسری می توانند منابع حافظه قابل توجهی را مصرف کنند، به خصوص اگر حاوی ساختارهای داده یا اشیاء بزرگ باشند. یا شاید لیست شما از متغیرهای جهانی (از طریق globals()
) بیش از حد به هم ریخته شده است.
یکی از مزیتهای حذف متغیرهای سراسری که دیگر به آن نیاز ندارید این است که میتواند به آزاد کردن حافظه، بهبود ردپای و کارایی کد شما کمک کند.
صبر کن! حذف یک متغیر سراسری باید با احتیاط انجام شود، زیرا اگر بخشهای دیگر برنامه شما همچنان در تلاش برای دسترسی به آن هستند، میتواند منجر به خطا شود.
چگونه یک متغیر جهانی را حذف کنیم
حذف یک متغیر سراسری در پایتون بسیار آسان است – ما فقط از آن استفاده می کنیم del
کلمه کلیدی. با این حال، اگر سعی کنید یک متغیر سراسری را مستقیماً در یک تابع حذف کنید، با خطا مواجه خواهید شد. این به این دلیل است که پایتون متغیرها را بهطور پیشفرض در توابع بهعنوان محلی در نظر میگیرد.
در اینجا یک مثال است:
x = 10
def delete_global():
del x
print(x)
delete_global()
این خروجی خواهد داشت:
UnboundLocalError: local variable 'x' referenced before assignment
برای حذف متغیر سراسری در تابع، باید جهانی اعلام کنند در داخل تابع با استفاده از global
کلمه کلیدی:
x = 10
def delete_global():
global x
del x
delete_global()
print(x)
این خروجی خواهد داشت:
NameError: name 'x' is not defined
همانطور که می بینید، پس از تماس با delete_global
عملکرد، تلاش برای چاپ x
منجر به الف NameError
زیرا متغیر سراسری x
حذف شده است.
نتیجه
در این بایت، ما در مورد متغیرهای سراسری در پایتون و اینکه چرا ممکن است بخواهید آنها را حذف کنید، یاد گرفتیم. ما همچنین نحوه حذف یک متغیر سراسری در یک تابع را با استفاده از del
و global
کلید واژه ها. فقط همیشه مطمئن شوید که متغیر قبل از حذف در جای دیگری از کد شما مورد نیاز نیست.
منتشر شده در 1402-12-27 01:52:11