مقایسه اشیاء: “is” در مقابل “==”
وقتی من بچه بودم، همسایه های ما دو گربه دوقلو داشتند. به نظر می رسید که آنها کاملاً یکسان به نظر می رسیدند – همان خز زغالی و همان رنگ سبز نافذ چشم ها. برخی از ویژگی های شخصیتی به کنار، شما نمی توانید آنها را از هم جدا کنید موجودات جدا از هم، حتی اگر دقیقاً یکسان به نظر برسند. از نگاه کردن به آنها اما البته، آنها دو گربه متفاوت بودند، دو این مرا به تفاوت معنا بین برابر و یکسان می رساند. و این تفاوت برای درک چگونگی پایتون بسیار مهم است عملگر == با بررسی برابری مقایسه می کند: اگر این گربه ها بودند اشیاء پایتون و ما آنها را با عملگر == مقایسه کردیم، دریافت می کنیم “هر دو گربه برابر هستند” به عنوان پاسخ. و == عملگرهای مقایسه رفتار می کنند. با این حال، عملگر is هویت ها را مقایسه می کند: اگر ما خود را مقایسه کنیم گربهها با اپراتور is، ما «این دو گربه متفاوت هستند» را به عنوان یک دریافت میکنیم اما قبل از اینکه در این قیاس گربهای از ریسمان درگیر شوم، اجازه دهید نگاهی به کدهای واقعی پایتون بیندازید. پاسخ. ابتدا یک شی لیست جدید ایجاد می کنیم و نام آن را a می گذاریم و سپس یک متغیر دیگر (b) تعریف می کنیم که به همان شی لیست اشاره می کند:>>> b = aبیایید این دو متغیر را بررسی کنیم. می بینیم که آنها به آن اشاره می کنند لیست هایی با ظاهر یکسان:>>> a >>> a = [1, 2, 3] [1, 2, 3] [1, 2, 3]از آنجایی که دو شیء فهرست یکسان به نظر می رسند، نتیجه مورد انتظار را دریافت خواهیم کرد هنگامی که آنها را برای برابری با استفاده از عملگر == مقایسه می کنیم:>>> a == b >>> b Trueبا این حال، این به ما نمی گوید که آیا a و b واقعاً به آن اشاره می کنند یا خیر همان شی البته ما می دانیم که آنها به این دلیل هستند که ما تعیین کرده ایم آنها را قبلاً، اما فرض کنید ما نمی دانستیم – چگونه می توانیم بفهمیم؟ تأیید می کند که هر دو متغیر در واقع به یک شی لیست اشاره می کنند:>>> a is b پاسخ این است که هر دو متغیر را با عملگر is مقایسه کنید. این Trueبیایید ببینیم وقتی یک کپی یکسان از لیست خود ایجاد می کنیم چه اتفاقی می افتد هدف – شی. ما می توانیم این کار را با فراخوانی list() در لیست موجود برای ایجاد انجام دهیم یک کپی که نام آن را ج می گذاریم: >>> c = list(a)مجدداً خواهید دید که لیست جدیدی که ما ایجاد کردیم شبیه به لیست است شی لیست که توسط a و b به آن اشاره می شود:[1, 2, 3] حالا اینجاست که جالب می شود. بیایید لیست خود را با کپی c مقایسه کنیم لیست اولیه a با استفاده از عملگر ==.>>> c
قوانین ارسال دیدگاه در سایت