خانه - پایگاه دانش کارجویا - مفهوم متغیر | ۲ متغیر جهانی(global) و محلی(local)

مفهوم متغیر | ۲ متغیر جهانی(global) و محلی(local)

فهرست مطالب

با سلام خدمت تمامی دوستان عزیزم ؛ در این مقاله قصد داریم مفهوم متغیر، متغیر جهانی(global) و محلی(local) و همچنین یک سری دستورات مربوط به متغیرها را با هم بررسی کنیم و در مقاله های بعدی بررسی انواع متغیر ها در پایتون را با همدیگر بررسی خواهیم کرد.

خب اول از همه بریم ببینیم متغیر چیه و چه کاربردی داره.

متغیر چیست؟

اگه بخوام خیلی ساده متغیر رو تعریف کنم میگم متغیر مثل یه ظرف می مونه که یه مقداری از یه ماده ای رو درون خودش نگه میداره . محتویات درون این ظرف می تونه ماده ای از هر نوع باشه و همچنین این ماده هم یه مقدار خاصی داره.

پس تا اینجای کار فهمیدیم که متغیر ما یه نوع و یه مقدار داره.

در برخی از زبان های برنامه نویسی لازمه که موقع تعریف متغیرمون نوعش رو هم مشخص کنیم اما در زبان پایتون نیازی به این کار نیست.

اگه بخوایم یکم اصولی تر متغیر رو تعریف کنیم میگیم  بخشی از فضای حافظه هست که در اون یه مقداری ذخیره شده.

چگونگی تعریف متغیر در پایتون

همانطور که بالاتر هم اشاره کردیم هنگام تعریف متغیر در پایتون نیازی به مشخص کردن نوع آن نداریم و وقتی متغیرمون رو تعریف می کنیم خود پایتون با توجه به مقدار متغیرمون متوجه میشه که نوع متغیری که تعریف کردیم چیه.

به صورت کلی متغیر تعریف شده در پایتون ۳ بخش دارد:

۱) نام متغیر    ۲) عملگر انتساب(=)    ۳)مقدار متغیر

که موقع تعریف کردن یک متغیر باید حواسمون به این ۳ مورد باشه.

مثالی از متغیر های مختلف در پایتون:

name = “Ali”

family = “Hosseini”

age = 20

grade = 19.5

در مثال بالا  name مثل ظرفی می مونه که مقدار Ali را درون اون ریخته ایم ؛ برای متغیر های دیگر هم به همین صورت.

خب حالا ممکنه که ما یه متغیری رو تعریف کنیم و بعدش متوجه بشیم که مقدار این متغیر اشتباهه و یا اینکه مقدار متغیر ما تغییر کرده . در این صورت می تونیم بعد از تعریف متغیرمون دوباره همون متغیر رو با مقدار جدیدش ایجاد کنیم ؛ در این صورت مقدار متغیرمون همون مقداریه که در آخر بهش دادیم. به مثال زیر توجه کنید:

name = “Hasan”

name = “Majid”

در مثال بالا متغیر nameرو تعریف کردیم و در اول بهش مقدار Hasan رو دادیم و مجدد همین متغیر رو تعریف کردیم و این دفعه مقدار متغیر name  رو Majid گذاشتیم.

حالا اگه با استفاده از دستور print (در مقالات بعدی به صورت عمیق تر این تابع رو بررسی می کنیم) متغیر name رو چاپ کنیم می بینیم که مقدار Majid رو به ما برمی گردونه.

ممکنه که در بعضی مواقع چندین متغیر یک مقدار داشته باشن که ما می تونین به صورت همزمان یک مقدار را به چندین متغیر انتساب دهیم مانند مثال زیر که a , b , c  هر سه مقدار۲۵۰ را دارند.

a = b = c = 250

در برخی مواقع نیز ما چندین متغیر متفاوت با مقادیر متفاوت داریم که باز هم می توانیم آن ها را یک جا همراه با مقادیرشان تعریف کنیم؛ مانند مثل زیر:

Name , family , age , grade = “Ali” ,” Hosseini “,20 , 19.5

اگه خیلی از قوانین نام گذاری متغیر ها اطلاعی ندارین بهتون پیشنهاد می کنم که یه سری به این مقاله بزنین.

برای چاپ کردن مقدار متغیر از دستور print استفاده می کنیم که در مقاله ی بعدی به بررسی این دستور خواهیم پرداخت.

همچنین در برخی پروژه های بزرگ برای اینکه به کاهش مصرف حافظه ی اصلی (در این جا رم) کمک کنیم متغیر های اضافی را با استفاده از دستور del پاک می کنیم؛ بدین صورت که نام متغیر مورد نظر خود را جلوی del قرار می دهیم.

مثالی از دو دستور بالا:

text = “Hello”

print(text)

del text

print(text)

در مثال بالا ابتدا یک متغیر به نام text  تعریف کردیم و مقدار آن را Hello قرار دادیم و با استفاده از دستور print  آن را چاپ می کنیم. در قدم بعدی با استفاده از دستور text ، del را پاک کردیم و در قدم آخر آن را چاپ می کنیم که خطای NameError دریافت می کنیم زیرا متغیر ما پاک شده و مفسر پایتون ، دیگر متغیری به نام text نمی شناسد.

خروجی قطعه کد بالا را در تصویر پایین می بینید.

متغیر جهانی(global) و متغیر محلی(local):

هر کلاس یا تابعی که تعریف می کنیم دارای یک محدوده ایه که به این محدوده scope تابع یا کلاس می گن . اگه متغیری که تعریف می کنیم داخل اسکوپ این تابع یا کلاس باشه که متغیرمون local یا محلیه و از متغیرمون فقط درون همون تابع یا کلاس می تونیم استفاده کنیم و خارج از اون اسکوپ ، مفسر پایتون متغیرمون رو نمی شناسه و اما اگه مغیری که تعریف می کنیم درون اسکوپ خاصی نباشه global یا جهانیه که در هر جای برنامه که لازمه

می تونیم از متغیرمون استفاده کنیم. همچنین میتوانیم با استفاده از کلمه ی global قبل از متغیر خود حتی درون اسکوپ هم متغیر خود را جهانی(سراسری) تعریف کنیم.

مثالی از متغیر global  و local :

متغیر جهانی و محلی

در مثال بالا a,b جهانی هستند زیرا خارج از اسکوپ تابع sum قرار دارند.

همچنین می توانیم a,b را درون اسکوپ global تعریف کنیم .

متغیر جهانی و محلی

و همچنین اگر متغیر ها را درون تابع تعریف کنیم a,b محلی می شوند که در بیرون از تابع نمی توان از آن استفاده کرد.

متغیر جهانی و محلی

همونطور که در مثال بالا می بینید مفسر به ما خطای Name Error داده و  a رو نمی شناسه.

خب دوستان این مقاله هم این جا به پایان می رسه ؛ ممنونم که من رو تا انتهای این مقاله همراهی کردین. پشنهاد می کنم که مقاله ی بعدی که مربوط به بررسی انواع متغیر ها و ساختمان داده ها در پایتون هست رو از دست ندین. تا مقاله ی بعدی خداوند یار و نگهدارتون.

 

ebrahim
ebrahim

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *