چرا در پایتون آدرس این متغیرها یکی است؟

+1 رأی
میانگین بازدید روزانه 0.07109 بازدید

سلام

چرا در پایتون، برای متغیر های a,b شاهد یکسان بودن شناسه ها هستیم؟

>>> a=100
>>> b=100
>>> id (a)
1604114432

>>> id (b)
1604114432
سوال 3 سال قبل در تالار کامپیوتر و اینترنت توسط TheFuture (484 امتیاز)
ویرایش 3 سال قبل توسط Saeed Zarinfam

2 جواب

+1 رأی

در پایتون، برای افزایش سرعت انجام امور محاسباتی، اعداد صحیح 0 تا 250 که، همگی اعداد متداولی در برنامه سازی هستند، درون داده ساختاری بنام Cache نگه داری می شوند.

برای همین، هنگامی که برای دریافت آدرس یک شی اقدام می کنیم، چنانچه مقدار آن شی، عددی صحیح و بین 0 تا 250 باشد، همواره آدرسی یکسان را برای id() دریافت می کنیم؛ حتی اگر چندین متغیر به صورت همزمان، به آن شی اشاره کنند.

ایجاد چندین برچسب مجزا برای یک چنین عددی، با اصطلاح Aliasing در پایتون شناخته می شود.

جواب 3 سال قبل توسط TheFuture (484 امتیاز)
0 رأی

تابع id در پایتون مشخصه ای برای شئ ایجاد شده در حافظه است و محلی که شئ در حافظه قرار دارد را مشخص می کند.  در مثال شما هر دو متغییر a و b به یک خانه حافظه که شئ 100 درون آن ذخیره است اشاره می کند. در کد زیر دو متغییر دیگر هم اضافه شده است که آنها هم به همانجای قبل اشاره می کند:

a = 100
b = 100
c = a
d = b

print id(a)
print id(b)
print id(c)
print id(d)

> 27984216
> 27984216
> 27984216
> 27984216
جواب 3 سال قبل توسط Saeed Zarinfam (392 امتیاز)
تشکر از شما.
خواهش می کنم

سوال های مشابه

0 رأی
2 جواب میانگین بازدید روزانه 0.07128 بازدید
0 رأی
3 جواب میانگین بازدید روزانه 0.29283 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.09129 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.24422 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1178 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1184 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1179 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.06103 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.1177 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.05124 بازدید
کانال تلگرام جواب یاب
...