+1 امتیاز
قبل در کامپیوتر و اینترنت توسط (484 امتیاز)
ویرایش شده قبل توسط

سلام

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

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

>>> id (b)
1604114432

2 پاسخ

+1 امتیاز
قبل توسط (484 امتیاز)

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

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

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

0 امتیاز
قبل توسط (1.1هزار امتیاز)

تابع 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
قبل توسط (1.1هزار امتیاز)
تشکر از شما.
قبل توسط (484 امتیاز)
خواهش می کنم

سوالات مشابه

0 امتیاز
2 پاسخ 464 بازدید
0 امتیاز
4 پاسخ 997 بازدید
0 امتیاز
1 پاسخ 1.1هزار بازدید
0 امتیاز
1 پاسخ 459 بازدید
0 امتیاز
1 پاسخ 700 بازدید
0 امتیاز
1 پاسخ 544 بازدید
سوال شده 10 سال قبل در کامپیوتر و اینترنت توسط hosseini (1.9هزار امتیاز)
0 امتیاز
1 پاسخ 540 بازدید
+1 امتیاز
2 پاسخ 1.1هزار بازدید
...