Truyền biến theo tham chiếu trong Python
Trong Python, các biến chứa các đối tượng phức tạp được truyền theo tham chiếu. Điều này có nghĩa là mọi thay đổi được thực hiện trên một biến sẽ phản ánh lên biến thứ hai. Và mặc dù với kiểu gán giá trị như vậy, nguy cơ xuất hiện lỗi sẽ tăng lên, nhưng bù lại tài nguyên bộ nhớ hệ thống của OS sẽ được tiết kiệm đáng kể.
Giả sử chúng ta có hai danh sách:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Vì biến lst2 được gán
giá trị của lst1, nên bây giờ trong bộ nhớ RAM
của máy tính chỉ lưu trữ một danh sách,
mà hai biến cùng tham chiếu đến đồng thời.
Hãy thay đổi phần tử đầu tiên của lst2
và in danh sách đầu tiên ra console:
lst2[0] = '!'
print(lst1) # sẽ in ra ['!', 2, 3, 4, 5]
Kết quả thực hiện đoạn mã sau sẽ là gì:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Kết quả thực hiện đoạn mã sau sẽ là gì:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Kết quả thực hiện đoạn mã sau sẽ là gì:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)