Sobes.tech
Junior

Mis on staatiline muutja Pythonis?

sobes.tech AI

Vastus AI-lt

Pythonis statinė kintamoji yra kintamasis, priklausantis klasei, o ne konkrečiam klasės egzemplioriui. Jo reikšmė yra dalijama tarp visų klasės egzempliorių.

Pagrindinės savybės:

  • Matymo sritis: Klasei ribose.
  • Gyvavimo trukmė: Egzistuoja visą programos veikimo laiką.
  • Prieiga: Gali būti pasiekiama tiek per klasės pavadinimą, tiek per klasės egzempliorių (nors prieiga per klasės pavadinimą yra pageidautina, norint pabrėžti statinį pobūdį).

Pavyzdys naudojimui:

class MyClass:
    # Statinė kintamoji
    static_variable = 10

    def __init__(self, instance_variable):
        # Egzemplioriaus kintamasis
        self.instance_variable = instance_variable

# Prieiga prie statinės kintamosios per klasės pavadinimą
print(MyClass.static_variable)

# Egzempliorių kūrimas
obj1 = MyClass(20)
obj2 = MyClass(30)

# Prieiga prie statinės kintamosios per egzempliorius
print(obj1.static_variable)
print(obj2.static_variable)

# Statinės kintamosios keitimas per klasės pavadinimą
MyClass.static_variable = 15

# Reikšmė pasikeitė visiems egzemplioriams
print(obj1.static_variable)
print(obj2.static_variable)

Šiame pavyzdyje static_variable yra statinė kintamoji. Ji egzistuoja viename egzemplioriuje visai klasei MyClass, ir jos reikšmė yra dalijama tarp objektų obj1 ir obj2. Keisdami reikšmę per klasės pavadinimą MyClass.static_variable = 15, tai atsispindi visuose egzemplioriuose.