Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เราจะเปลี่ยน id ของสตริงที่ไม่เปลี่ยนรูปใน Python ได้อย่างไร


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

>>> a = 'hi'
>>> b = 'hi'
>>> id(a)
43706848L
>>> id(b)
43706848L

การนำวัตถุสตริงกลับมาใช้ใหม่นี้เรียกว่าการฝึกงานใน Python สตริงเดียวกันมีรหัสเดียวกัน แต่ Python ไม่รับประกันว่าจะฝึกสตริง หากคุณสร้างสตริงที่ไม่ใช่ค่าคงที่อ็อบเจ็กต์โค้ด หรือมีอักขระที่อยู่นอกตัวอักษร + ตัวเลข + ขีดล่าง คุณจะเห็นค่า id() ไม่ถูกนำกลับมาใช้ใหม่

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

>>> a = 'weworks_45#@$'
>>> b = 'weworks_45#@$'
>>> id(a)
96226208L
>>> id(b)
91720800L