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

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

سلام

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

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

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

2 جواب

+1 رأی

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

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

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

جواب 4 سال قبل توسط 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
جواب 4 سال قبل توسط Saeed Zarinfam (705 امتیاز)
تشکر از شما.
خواهش می کنم

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

0 رأی
2 جواب میانگین بازدید روزانه 0.08154 بازدید
0 رأی
3 جواب میانگین بازدید روزانه 0.25322 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.08148 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.24484 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1200 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1215 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1218 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.06128 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.11238 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.05137 بازدید
کانال تلگرام جواب یاب
...