متغیرها (Variables)

یک متغیر ارتباطی( mapping ) بین یک نام( name ) و یک شی( object ) در یک آدرس مشخص حافظه ی کامپیوتر است. برای مثال :

x = 5

در این مثال x نام متغیر است و مقدار 5 در حافظه برای آن ذخیره می شود. پایتون به صورت خودکار عمل ردیابی ارتباط بین x و محل مقدار(در اینجا 5) را به صورت خودکار توسط مفهومی به نام فضانام ها( namespaces ) انجام میدهد. Namespace ها را مانند دیکشنری ها فرض کنید که در آنها نام متغیرها کلید های دیکشنری هستند و آدرس های حافظه هم مقادیر دیکشنری.


ویکی پدیای فضانام به انگلیسی

ویکی پدیای فضانام به فارسی


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

x = 2
y = x
x = 4
print('x = ' + str(x))
print('y = ' + str(y))

در خروجی خواهیم داشت:

x = 4

y = 2

در این مثال x و y هردو به عدد صحیح 2 در حافظه اشاره می کنند. توجه کنید که y = x برابر با y = 2 است. زمانی که x بروز می شود، به آدرس دیگری در حافظه اشاره می کند و y به عدد صحیح 2 متصل می ماند.