Πώς είναι δομημένες οι μεταβλητές στην Python;
sobes.tech AI
Απάντηση από AI
Οι μεταβλητές στην Python δεν είναι δοχεία δεδομένων, αλλά μάλλον ετικέτες ή ονόματα που αναφέρονται σε αντικείμενα στη μνήμη.
Όταν αναθέτετε μια τιμή σε μια μεταβλητή, δεν αντιγράφετε αυτήν την τιμή, αλλά δημιουργείτε μια αναφορά σε ένα υπάρχον ή δημιουργούμενο αντικείμενο.
Βασικές έννοιες:
- Ονόματα μεταβλητών: Μπορούν να περιέχουν γράμματα (λατινικά), ψηφία και κάτω παύλα. Δεν μπορούν να ξεκινούν με ψηφίο. Είναι ευαίσθητα σε πεζά-κεφαλαία.
- Αντικείμενα: Όλα στην Python είναι αντικείμενα. Κάθε αντικείμενο έχει έναν τύπο, μια τιμή και έναν αναγνωριστικό (διεύθυνση στη μνήμη).
- Αναφορές: Η μεταβλητή αποθηκεύει μια αναφορά στον αναγνωριστικό του αντικειμένου.
Παράδειγμα:
# Δημιουργούμε ένα αντικείμενο int με τιμή 100 και αναθέτουμε τον αναγνωριστικό του στο 'a'
a = 100
# Η μεταβλητή 'b' τώρα αναφέρεται στο ίδιο αντικείμενο int με τιμή 100
b = a
# Δημιουργούμε ένα νέο αντικείμενο int με τιμή 200 και αναθέτουμε τον αναγνωριστικό του στο 'a'
a = 200
Σε αυτό το παράδειγμα, μετά το a = 200, η μεταβλητή a αναφέρεται στο νέο αντικείμενο 200, ενώ η μεταβλητή b εξακολουθεί να αναφέρεται στο αντικείμενο 100.
- Δυναμικός τύπος: Ο τύπος της μεταβλητής καθορίζεται από τον τύπο του αντικειμένου στο οποίο αναφέρεται, και μπορεί να αλλάξει κατά την εκτέλεση του προγράμματος.
# Η μεταβλητή 'x' αναφέρεται σε ένα αντικείμενο int
x = 10
# Τώρα η μεταβλητή 'x' αναφέρεται σε ένα αντικείμενο str
x = "hello"
-
Συλλογή απορριμμάτων: Όταν δεν υπάρχουν πλέον αναφορές σε ένα αντικείμενο, η Python ελευθερώνει αυτόματα τη μνήμη που καταλαμβάνει μέσω του μηχανισμού συλλογής απορριμμάτων.
-
Αμετάβλητα (immutable) vs. μεταβλητά (mutable) αντικείμενα:
- Αμετάβλητα: Αριθμοί, συμβολοσειρές, πλειάδες. Η προσπάθεια "αλλαγής" ενός τέτοιου αντικειμένου, δημιουργεί στην πραγματικότητα ένα νέο αντικείμενο.
- Μεταβλητά: Λίστες, λεξικά, σύνολα. Το περιεχόμενό τους μπορεί να αλλάξει χωρίς να δημιουργηθεί νέο αντικείμενο.
# Αμετάβλητο αντικείμενο str
s = "world"
# Δημιουργείται ένα νέο αντικείμενο str "hello world", το 's' αναφέρεται σε αυτό
s = "hello " + s
# Μεταβλητό αντικείμενο list
l = [1, 2, 3]
# Το περιεχόμενο του υπάρχοντος αντικειμένου list αλλάζει
l.append(4)
Έτσι, οι μεταβλητές στην Python είναι ευέλικτα και ισχυρά εργαλεία για την εργασία με δεδομένα, βασισμένα στην έννοια των αναφορών σε αντικείμενα.