عملگرهای هویتی (Identity Operators)
در «عملگرهای هویتی (Identity Operators)» ما برابریِ «هویت» را می سنجیم. یعنی آیا دو متغیر دقیقاً به یک «آبجکت (Object)» واحد اشاره می کنند یا نه. این با «برابری مقدار (==)» فرق دارد.
تعریف عملگرهای is و is not
is وقتی True می شود که هر دو متغیر همان آبجکت باشند. is not وقتی True می شود که دو متغیر همان آبجکت نباشند.
x = ["apple", "banana"]
y = ["apple", "banana"]
z = x
print(x is z)
print(x is y)
print(x == y)
x = ["apple", "banana"]
y = ["apple", "banana"]
print(x is not y)
تفاوت is با ==
is حافظه مشترک را می سنجد. == برابری «مقدار» را می سنجد. بنابراین ممکن است مقدارها برابر باشند، اما آبجکت ها یکسان نباشند.
x = [1, 2, 3]
y = [1, 2, 3]
print(x == y)
print(x is y)
گام های تمرینی سریع
- دو لیست هم مقدار بساز.
- یکی را به متغیر سوم انتساب بده.
- با
isوis notچاپ کن. - نتیجه
==وisرا مقایسه کن.
نکته: برای ترکیب شرط ها به عملگرهای منطقی مراجعه کن. برای بررسی حضور در مجموعه ها، عملگرهای عضویت را ببین.
جمع بندی سریع
isهویت یکسان را بررسی می کند.is notهویت متفاوت را بررسی می کند.==فقط مقدار را مقایسه می کند.- دو لیست هم مقدار، معمولاً آبجکت یکسان نیستند.