การส่งตัวแปรโดยการอ้างอิงใน Python
ใน Python ตัวแปรที่เก็บวัตถุที่ซับซ้อนจะถูกส่งโดยการอ้างอิง ซึ่งหมายความว่าการเปลี่ยนแปลงทั้งหมดที่ทำในตัวแปรหนึ่งจะสะท้อนไปยังตัวแปรที่สอง และแม้ว่าการกำหนดค่าแบบนี้จะเพิ่มความเสี่ยงของข้อผิดพลาด แต่มันช่วยประหยัดทรัพยากรหน่วยความจำของระบบปฏิบัติการได้อย่างมาก
สมมติว่าเรามีสองรายการ:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
เนื่องจากตัวแปร lst2 ถูกกำหนดค่าให้เท่ากับ lst1 ตอนนี้ในหน่วยความจำของคอมพิวเตอร์จึงเก็บรายการเดียวที่มีการอ้างอิงถึงพร้อมกันโดยสองตัวแปร
ลองเปลี่ยนองค์ประกอบแรกของ lst2 และพิมพ์รายการแรกออกทางคอนโซล:
lst2[0] = '!'
print(lst1) # จะแสดง ['!', 2, 3, 4, 5]
ผลลัพธ์ของการดำเนินการโค้ดต่อไปนี้จะเป็นอย่างไร:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
ผลลัพธ์ของการดำเนินการโค้ดต่อไปนี้จะเป็นอย่างไร:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
ผลลัพธ์ของการดำเนินการโค้ดต่อไปนี้จะเป็นอย่างไร:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)