Python-luokan muuttujien luominen ja käyttö
Python-luokan muuttujat ovat jäsennelty tapa jakaa tietoja luokan eri instanssien välillä. Jos teet muutoksia luokan muuttujaan, se vaikuttaa kaikkiin luokan instansseihin. Tämä tarkoittaa, että sinun ei tarvitse määritellä niitä uudelleen joka kerta, kun ne instansoidaan.
Mitä ovat Python-luokan muuttujat?
Pythonissa luomme luokkamuuttujia luokan sisällä. Toisin kuin instanssimuuttujat, jotka ovat luokkakohtaisia, luokkamuuttujat säilyttävät saman arvon kaikissa instansseissa. Luokkamuuttujat määritetään yleensä ennen konstruktoria, ja niihin pääsee käsiksi minkä tahansa luokan instanssin kautta.
Python-luokan muuttujat ovat hyödyllisiä tallentamaan tietoja, jotka koskevat kaikkia luokan instansseja, kuten konfigurointiasetuksia, oletusarvoja tai luokkahierarkiassa jaettuja tiloja. Luokan muuttujien avulla voit myös määritellä luokkametodeja tai attribuutteja, joihin jokainen instanssi voi käyttää, mikä parantaa sekä koodisi toiminnallisuutta että rakennetta.
Mikä on Python-luokkamuuttujien syntaksi?
Python-luokan muuttujat luodaan luokkamääritelmän sisällä ja menetelmien ulkopuolella.
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: A4pythonLuokassa Car määritellään luokkamuuttuja total_cars, joka pitää kirjaa autojen kokonaismäärästä. Konstruktori __init__ kutsutaan, kun luodaan uusi luokan instanssi. Jokaisella instanssoinnilla instanssimuuttujat brand ja model asetetaan ja luokkamuuttuja total_cars kasvatetaan yhdellä.
Kutsumalla display_details() voimme näyttää kyseisten autojen instanssien tiedot. F-merkkijonossa, joka on Python-merkkijonomuotoilumenetelmä, voimme käyttää luokkamuuttujaa total_cars näyttämään luotujen autojen kokonaismäärän.
Esimerkkejä Python-luokan muuttujien käytöstä
Pääsy, muokkaus ja perintö ovat avainasemassa Pythonin luokkamuuttujien turvallisessa käsittelyssä.
Luokkamuuttujien käyttö
Python-luokan muuttujiin pääsee käsiksi luokan nimen tai instanssin kautta, jota seuraa piste ja muuttujan nimi.
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.pythonPythonissa voit käyttää luokkamuuttujia useissa eri paikoissa:
- Konstruktorissa: Voit kutsua luokkamuuttujan konstruktorissa joko avainsanalla
selftai luokkanimellä. - Instanssimetodeissa: Voit kutsua luokkamuuttujan instanssimetodeissa joko avainsanalla
selftai luokan nimellä. - Luokan ulkopuolella: Voit käyttää luokkamuuttujaa luokan ulkopuolella objektiviittauksen tai luokan nimen avulla.
Luokkamuuttujien muokkaaminen
Python-luokan muuttujia voidaan muokata suoraan luokan nimen kautta. Jos kuitenkin instanssimuuttujalla on sama nimi kuin luokkamuuttujalla ja yrität muuttaa muuttujaa instanssin kautta, luodaan uusi instanssimuuttuja ja luokkamuuttuja pysyy muuttumattomana.
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 variablepythonTässä esimerkissä olemme korvannut luokkamuuttujan class_var antamalla sille uuden arvon luokalla MyClass. Muutos otetaan sitten automaattisesti käyttöön instanssissa obj.
Luokkavaihtelijat ja periytyminen
Perintö mahdollistaa johdettujen luokkien pääsyn ja käytön perusluokan luokkamuuttujiin ilman, että niitä tarvitsee määritellä uudelleen.
class BaseClass:
base_var = "Base variable"
class DerivedClass(BaseClass):
pass
print(DerivedClass.base_var) # Output: Base variablepythonTässä määritellään perusluokka BaseClass, joka sisältää luokkamuuttujan base_var. Johdettu luokka DerivedClass perii luokasta BaseClass. Perinnän kautta DerivedClass voi käyttää perusluokan luokkamuuttujaa base_var ilman, että sitä tarvitsee määritellä uudelleen. 4dbc716b5eea9ffa69e4d918b961c9b0