Pass by Reference dalam Python
Di Python, variabel yang berisi objek kompleks diteruskan oleh referensi. Artinya, semua perubahan yang dibuat dalam satu variabel akan tercermin pada variabel kedua. Dan meskipun dengan tipe penugasan nilai seperti ini meningkatkan risiko munculnya error, namun secara signifikan menghemat sumber daya memori sistem OS.
Misalkan kita memiliki dua list:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Karena variabel lst2 ditugaskan
nilai lst1, sekarang dalam memori
komputer tersimpan satu list,
yang dirujuk secara bersamaan oleh dua
variabel.
Mari kita ubah elemen pertama lst2
dan cetak list pertama ke konsol:
lst2[0] = '!'
print(lst1) # akan mencetak ['!', 2, 3, 4, 5]
Bagaimana hasil eksekusi kode berikut:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Bagaimana hasil eksekusi kode berikut:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Bagaimana hasil eksekusi kode berikut:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)