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

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

سلام

چرا در پایتون، برای متغیر های 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 (1,385 امتیاز)
تشکر از شما.
خواهش می کنم

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

0 رأی
2 جواب میانگین بازدید روزانه 0.08125 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.28254 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.09127 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.24402 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1172 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1170 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.09161 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.06101 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.1169 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.05122 بازدید
کانال تلگرام جواب یاب
...