Junior
Τι είναι μια στατική μεταβλητή στην Python;
sobes.tech AI
Απάντηση από AI
Στην Python, μια στατική μεταβλητή είναι μια μεταβλητή που ανήκει στην κλάση και όχι σε μια συγκεκριμένη περίπτωση της κλάσης. Η τιμή της μοιράζεται μεταξύ όλων των αντικειμένων της κλάσης.
Βασικά χαρακτηριστικά:
- Πεδίο: Μέσα στην κλάση.
- Χρόνος ζωής: Υπάρχει καθ' όλη τη διάρκεια εκτέλεσης του προγράμματος.
- Πρόσβαση: Μπορεί να προσπελαστεί τόσο μέσω του ονόματος της κλάσης όσο και μέσω μιας περίπτωσης της κλάσης (αν και η πρόσβαση μέσω του ονόματος της κλάσης προτιμάται για να υποδείξει τη στατική φύση).
Παράδειγμα χρήσης:
class MyClass:
# Στατική μεταβλητή
static_variable = 10
def __init__(self, instance_variable):
# Μεταβλητή περίπτωσης
self.instance_variable = instance_variable
# Πρόσβαση στη στατική μεταβλητή μέσω του ονόματος της κλάσης
print(MyClass.static_variable)
# Δημιουργία αντικειμένων
obj1 = MyClass(20)
obj2 = MyClass(30)
# Πρόσβαση στη στατική μεταβλητή μέσω των αντικειμένων
print(obj1.static_variable)
print(obj2.static_variable)
# Αλλαγή της στατικής μεταβλητής μέσω του ονόματος της κλάσης
MyClass.static_variable = 15
# Η τιμή άλλαξε για όλα τα αντικείμενα
print(obj1.static_variable)
print(obj2.static_variable)
Σε αυτό το παράδειγμα, το static_variable είναι μια στατική μεταβλητή. Υπάρχει σε ένα μόνο αντίγραφο για όλη την κλάση MyClass και η τιμή της μοιράζεται μεταξύ των αντικειμένων obj1 και obj2. Η αλλαγή μέσω του ονόματος της κλάσης MyClass.static_variable = 15 αντικατοπτρίζεται σε όλα τα αντικείμενα.