Μεταβίβαση μεταβλητών με αναφορά στην Python
Στην Python μεταβλητές που περιέχουν σύνθετα αντικείμενα μεταβιβάζονται με αναφορά. Αυτό σημαίνει, όλες οι αλλαγές που γίνονται σε μια μεταβλητή θα αντικατοπτριστούν στη δεύτερη. Και αν και με αυτόν τον τύπο ανάθεσης τιμών αυξάνεται ο κίνδυνος εμφάνισης σφάλματος, ωστόσο εξοικονομείται σημαντικά πόρος της μνήμης του συστήματος του ΛΣ.
Ας υποθέσουμε ότι έχουμε δύο λίστες:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Εφόσον στη μεταβλητή lst2 ανατέθηκε
η τιμή lst1, τώρα στη μνήμη RAM
του υπολογιστή αποθηκεύεται μια λίστα,
στην οποία αναφέρονται ταυτόχρονα δύο
μεταβλητές.
Ας αλλάξουμε το πρώτο στοιχείο της 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)