Kā izveidot un izmantot Python klases mainīgos
Python klases mainīgie ir strukturē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ārdefinē tās katru reizi, kad tās tiek instanciētas.
Kas ir Python klases mainīgie?
Python valodā mēs izveidojam klases mainīgos klases ietvaros. Atšķirībā no instancēm, kas ir specifiskas 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 konstruktora 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, konfigurācijas iestatījumus, noklusējuma vērtības vai kopīgus stāvokļus visā klases hierarhijā. Klases mainīgie ļauj arī definēt klases metodes vai atribūtus, kuriem var piekļūt katra instance, uzlabojot gan koda funkcionalitāti, gan struktūru.
Kāda ir Python klases mainīgo sintakse?
Python klases mainīgie tiek izveidoti klases definīcijā 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: A4pythonCar klasē mēs definējam klases mainīgo total_cars, lai uzskaitītu kopējo automašīnu skaitu. Konstruktors __init__ tiek izsaukta, kad tiek izveidota jauna klases instance. Katrā instancēšanas reizē tiek iestatīti instancēšanas mainīgie brand un model, un klases mainīgais total_cars tiek palielināts par 1.
Izsaucot metodi display_details(), varam parādīt attiecīgo automašīnu instancu informāciju. F-stringā, Python string formāta metodē, varam piekļūt klases mainīgajam total_cars, lai parādītu kopējo izveidoto automašīnu skaitu.
Python klases mainīgo izmantošanas piemēri
Piekļuve, modificēšana un pārmantošana ir ļoti svarīgi, lai Python droši strādātu ar klases mainīgajiem.
Piekļuve klases mainīgajiem
Python klases mainīgie ir pieejami, izmantojot 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.pythonPython valodā var piekļūt klases mainīgajiem dažādās vietās:
- Konstruktorā: klases mainīgo konstruktorā var izsaukt, izmantojot vai nu atslēgvārdu
self, vai klases nosaukumu. - Instance metodēs: Jūs varat izsaukt klases mainīgo instance metodēs, izmantojot vai nu
selfatslēgvārdu, vai klases nosaukumu. - Ārpus klases: Jūs varat piekļūt klases mainīgajam ārpus klases, izmantojot objekta atsauci vai klases nosaukumu.
Klases mainīgo mainīšana
Python klases mainīgos var mainīt tieši, izmantojot klases nosaukumu. Tomēr, ja instancē mainīgajam ir tāds pats nosaukums kā klases mainīgajam un jūs mēģināt mainīt mainīgo, izmantojot 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 variablepythonŠajā piemērā mēs pārrakstījām klases mainīgo class_var, piešķirot tam jaunu vērtību, izmantojot klasi MyClass. Izmaiņas tiek automātiski pārņemtas obj instancē.
Klases mainīgie un pārmantošana
Pārmantošana ļauj atvasinātajām klasēm piekļūt un izmantot bāzes klases klases mainīgos, tos no jauna nedefinējot.
class BaseClass:
base_var = "Base variable"
class DerivedClass(BaseClass):
pass
print(DerivedClass.base_var) # Output: Base variablepythonŠeit mēs definējam bāzes klasi BaseClass, kas satur klases mainīgo base_var. Atvasinātā klase DerivedClass pārmanto no BaseClass. Pārmantošanas ceļā DerivedClass var piekļūt bāzes klases klases mainīgajam base_var un to izmantot, to no jauna nedefinējot.