Sobes.tech
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 αντικατοπτρίζεται σε όλα τα αντικείμενα.