ค้นหาเว็บไซต์

เรียนรู้ตัวดำเนินการระบุตัวตน Python และความแตกต่างระหว่างตัวดำเนินการ "==" และ "IS"


บทความนี้จัดทำขึ้นเพื่ออธิบายโอเปอเรเตอร์ที่สำคัญใน python เป็นหลัก (“IDENTITY OPERATOR ”) และความแตกต่างของโอเปอเรเตอร์เอกลักษณ์ (คือ, ไม่ใช่ ) จากตัวดำเนินการเปรียบเทียบ (==)

ผู้ดำเนินการระบุตัวตน

ตัวดำเนินการระบุตัวตน (“is ” และ “is not ”) ใช้เพื่อเปรียบเทียบตำแหน่งหน่วยความจำของวัตถุ เมื่อวัตถุถูกสร้างขึ้นในหน่วยความจำ ที่อยู่หน่วยความจำเฉพาะจะถูกจัดสรรให้กับวัตถุนั้น

  • '==' เปรียบเทียบว่าค่าวัตถุทั้งสองเหมือนกันหรือไม่
  • 'is' เปรียบเทียบว่าวัตถุทั้งสองอยู่ในตำแหน่งหน่วยความจำเดียวกันหรือไม่

สร้างวัตถุสตริงสามรายการ ชื่อ, ชื่อ1 และ ชื่อ2 วัตถุสตริง ชื่อ และ ชื่อ2 จะเก็บค่าเดียวกัน และ ชื่อ1 จะเก็บค่าต่างกัน

เมื่อเราสร้างวัตถุเหล่านี้ สิ่งที่เกิดขึ้นเบื้องหลังคือวัตถุนั้นจะถูกสร้างขึ้นในหน่วยความจำและจะพร้อมใช้งานตลอดอายุของโปรแกรม

ตอนนี้คุณสามารถใช้ตัวดำเนินการเปรียบเทียบ “== ” เพื่อตรวจสอบว่าค่าวัตถุทั้งสองมีค่าเท่ากันหรือไม่ ผลลัพธ์ของตัวดำเนินการเปรียบเทียบจะเป็นค่าบูลีน (จริง หรือ เท็จ)

ตอนนี้คุณได้เปรียบเทียบค่าสองค่าเพื่อกำหนดความเท่าเทียมกันแล้ว ให้เรามาดูวิธีการทำงานของตัวดำเนินการข้อมูลประจำตัว

ฟังก์ชัน Id() ในตัวใช้เพื่อรับ “ตัวตน ” ของวัตถุ จำนวนเต็มซึ่งจะไม่ซ้ำกันและคงที่สำหรับวัตถุตลอดอายุการใช้งาน

เพื่อให้เข้าใจง่าย ให้คิดว่านี่เป็น ID หรือ Emp ID ของรัฐบาลที่ไม่ซ้ำกันซึ่งกำหนดให้กับคุณ ในทำนองเดียวกันจะมีการกำหนดค่าจำนวนเต็มที่ไม่ซ้ำกันสำหรับแต่ละอ็อบเจ็กต์

ตอนนี้คุณสามารถเปรียบเทียบการอ้างอิงวัตถุ 2 รายการโดยใช้ตัวดำเนินการ “is ”

เมื่อฉันเปรียบเทียบ ชื่อ และ Name1 หรือ Name2 โดยใช้ตัวดำเนินการข้อมูลประจำตัว สิ่งที่มันทำที่แบ็กเอนด์คือเพียงแค่รัน “id(Name ) == id(ชื่อ2) ”. เนื่องจาก id(Name) และ id(Name2) ต่างก็ใช้ตำแหน่งหน่วยความจำเดียวกัน จึงส่งกลับ True

ตอนนี้มาถึงส่วนที่น่าสนใจ ดูตัวอย่างก่อนหน้าของเราที่ทั้ง ชื่อ และ ชื่อ1 มีค่าเหมือนกันและส่งกลับค่าจำนวนเต็มเดียวกันเมื่อเราเรียกใช้ฟังก์ชัน id() เหตุใดคุณจึงคิดว่าวัตถุ “Name_new ” และ “Name_le ” ไม่เหมือนกัน แม้ว่าจะแชร์ค่าเดียวกันจากภาพหน้าจอด้านล่างก็ตาม

นี่เป็นเพราะการนำการออกแบบหลามไปใช้ เมื่อคุณสร้างวัตถุจำนวนเต็มในช่วง (-5,256) และวัตถุสตริงที่มากกว่าหรือเท่ากับ 20 ตัวอักษร แทนที่จะสร้างวัตถุที่แตกต่างกันในหน่วยความจำสำหรับค่าเดียวกันวัตถุเหล่านี้ ทำหน้าที่เป็นตัวชี้ไปยังวัตถุที่สร้างไว้แล้ว

การแสดงรูปภาพด้านล่างจะทำให้คุณเข้าใจอย่างชัดเจนถึงสิ่งที่เราได้เห็นในบทความนี้

สรุป

ในบทความนี้ เราได้เห็นแล้วว่า ตัวดำเนินการข้อมูลประจำตัว คืออะไร วิธีใช้ตัวดำเนินการเปรียบเทียบและตัวดำเนินการเอกลักษณ์ ออกแบบการใช้งานเกี่ยวกับวิธีการสร้างออบเจ็กต์ในหน่วยความจำ