เรียนรู้ตัวดำเนินการระบุตัวตน 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 ตัวอักษร แทนที่จะสร้างวัตถุที่แตกต่างกันในหน่วยความจำสำหรับค่าเดียวกันวัตถุเหล่านี้ ทำหน้าที่เป็นตัวชี้ไปยังวัตถุที่สร้างไว้แล้ว
การแสดงรูปภาพด้านล่างจะทำให้คุณเข้าใจอย่างชัดเจนถึงสิ่งที่เราได้เห็นในบทความนี้
สรุป
ในบทความนี้ เราได้เห็นแล้วว่า ตัวดำเนินการข้อมูลประจำตัว คืออะไร วิธีใช้ตัวดำเนินการเปรียบเทียบและตัวดำเนินการเอกลักษณ์ ออกแบบการใช้งานเกี่ยวกับวิธีการสร้างออบเจ็กต์ในหน่วยความจำ