Python klases mainīgie ir struk­tu­rēts veids, kā dalīties ar datiem starp dažādām klases instancēm. Ja veicat izmaiņas klases mainīgajā, tas ietekmē visas klases instancēm. Tas nozīmē, ka jums nav jā­pār­de­fi­nē tās katru reizi, kad tās tiek in­stan­ciē­tas.

Kas ir Python klases mainīgie?

Python valodā mēs iz­vei­do­jam klases mainīgos klases ietvaros. Atšķirībā no instancēm, kas ir spe­ci­fis­kas katrai klases instancēm, klases mainīgie saglabā vienādu vērtību visām instancēm. Klases mainīgie parasti tiek iestatīti pirms kons­truk­to­ra un tiem var piekļūt jebkura klases instance.

Python klases mainīgie ir noderīgi, lai uzglabātu datus, kas attiecas uz visām klases instancēm, piemēram, kon­fi­gu­rā­ci­jas ie­sta­tī­ju­mus, no­klu­sē­ju­ma vērtības vai kopīgus stāvokļus visā klases hie­rar­hi­jā. Klases mainīgie ļauj arī definēt klases metodes vai atribūtus, kuriem var piekļūt katra instance, uzlabojot gan koda fun­kcio­na­li­tā­ti, gan struktūru.

Kāda ir Python klases mainīgo sintakse?

Python klases mainīgie tiek izveidoti klases de­fi­nī­ci­jā un ārpus metodēm.

class Car:
    total_cars = 0  # Class variable to track the total number of cars
    def __init__(self, brand, model):
        self.brand = brand  # Instance variable for the car brand
        self.model = model  # Instance variable for the car model
        Car.total_cars += 1  # Increment the total number of cars upon each instantiation
    def display_details(self):
        print(f"Brand: {self.brand}, Model: {self.model}")
# Creating instances of Car
car1 = Car("BMW", "X3")
car2 = Car("Audi", "A4")
# Accessing class variable and instance variables
print(f"Total number of cars: {Car.total_cars}")  # Output: 2
car1.display_details()  # Output: Brand: BMW, Model: X3
car2.display_details()  # Output: Brand: Audi, Model: A4
python

Car klasē mēs definējam klases mainīgo total_cars, lai uz­skai­tī­tu kopējo au­to­ma­šī­nu skaitu. Kons­truk­tors __init__ tiek izsaukta, kad tiek izveidota jauna klases instance. Katrā in­stan­cē­ša­nas reizē tiek iestatīti in­stan­cē­ša­nas mainīgie brand un model, un klases mainīgais total_cars tiek pa­lie­li­nāts par 1.

Izsaucot metodi display_details(), varam parādīt attiecīgo au­to­ma­šī­nu instancu in­for­mā­ci­ju. F-stringā, Python string formāta metodē, varam piekļūt klases mai­nī­ga­jam total_cars, lai parādītu kopējo izveidoto au­to­ma­šī­nu skaitu.

Python klases mainīgo iz­man­to­ša­nas piemēri

Piekļuve, mo­di­fi­cē­ša­na un pār­man­to­ša­na ir ļoti svarīgi, lai Python droši strādātu ar klases mai­nī­ga­jiem.

Piekļuve klases mai­nī­ga­jiem

Python klases mainīgie ir pieejami, iz­man­to­jot klases nosaukumu vai instanci, kam seko punkts un mainīgā nosaukums.

class MyClass:
    class_var = "This is a class variable."
# Using a class name to access a class variable
print(MyClass.class_var)  # Output: This is a class variable.
# Using an instance to access a class variable
obj = MyClass()
print(obj.class_var)  # Output: This is a class variable.
python

Python valodā var piekļūt klases mai­nī­ga­jiem dažādās vietās:

  • Kons­truk­to­rā: klases mainīgo kons­truk­to­rā var izsaukt, iz­man­to­jot vai nu at­slēg­vār­du self, vai klases nosaukumu.
  • Instance metodēs: Jūs varat izsaukt klases mainīgo instance metodēs, iz­man­to­jot vai nu self at­slēg­vār­du, vai klases nosaukumu.
  • Ārpus klases: Jūs varat piekļūt klases mai­nī­ga­jam ārpus klases, iz­man­to­jot objekta atsauci vai klases nosaukumu.

Klases mainīgo mainīšana

Python klases mainīgos var mainīt tieši, iz­man­to­jot klases nosaukumu. Tomēr, ja instancē mai­nī­ga­jam ir tāds pats nosaukums kā klases mai­nī­ga­jam un jūs mēģināt mainīt mainīgo, iz­man­to­jot instanci, tiks izveidots jauns instancē mainīgais, bet klases mainīgais paliks nemainīgs.

class MyClass:
    class_var = "Original class variable"
obj = MyClass()
print(obj.class_var)  # Output: Original class variable
MyClass.class_var = "Modified class variable"
print(obj.class_var)  # Output: Modified class variable
python

Šajā piemērā mēs pār­rak­stī­jām klases mainīgo class_var, piešķirot tam jaunu vērtību, iz­man­to­jot klasi MyClass. Izmaiņas tiek au­to­mā­tis­ki pārņemtas obj instancē.

Klases mainīgie un pār­man­to­ša­na

Pār­man­to­ša­na ļauj at­va­si­nā­ta­jām klasēm piekļūt un izmantot bāzes klases klases mainīgos, tos no jauna ne­de­fi­nē­jot.

class BaseClass:
    base_var = "Base variable"
class DerivedClass(BaseClass):
    pass
print(DerivedClass.base_var)  # Output: Base variable
python

Šeit mēs definējam bāzes klasi BaseClass, kas satur klases mainīgo base_var. At­va­si­nā­tā klase DerivedClass pārmanto no BaseClass. Pār­man­to­ša­nas ceļā DerivedClass var piekļūt bāzes klases klases mai­nī­ga­jam base_var un to izmantot, to no jauna ne­de­fi­nē­jot.

Go to Main Menu