اگر با C یا C++ آشنایی داشته باشید، استفاده از is یا is not مثل مقایسه آدرس حافظه دو متغیره (همون پوینتر). این توضیحیه که در خود راهنمای پایتون ذکر شده:
The operators is and is not test for an object’s identity: x is y is true if and only if x and y are the same object. An Object’s identity is determined using the id() function. x is not y yields the inverse truth value.
این تست رو خودتون میتونید انجام بدین. دو تا لیست به نام a و b با اعضای یکسان تعریف کنید:
a = [1,2,3]
b = [1,2,3]
حالا دستور a == b رو اجرا کنید. همون طور که میبینید حاصل برابر با True میشه چرا که مقدار دو متغیر a و b یکسانه. اما اگر id های این دو متغیر رو بررسی کنید (تقریبا میشه مشابه پوینتر به یک متغیر در C در نظر گرفتش) میبینید که آیدیها متفاوته:
print(id(a))
print(id(b))
متفاوت بودن id به این معنیه که این دو متغیر مربوط به یک آبجکت یکسان نیستند یا به عبارتی به یک بخش از حافظه اشاره ندارند و به همین خاطر حاصل a is b برابر با False میشه. حالا همین توضیحات رو میشه برای != و is not هم در نظر گرفت.