Python klases ir kā būv­nie­cī­bas plāni vai veidnes. Jūs varat izmantot tās, lai rakstītu atkārtoti iz­man­to­ja­mu kodu klases atribūtu un metožu veidā.

Kas ir Python klases?

Klase ir abstrakts jēdziens, kas apraksta objektu atribūtus un metodes. Python klase darbojas kā veidne konkrētu objektu radīšanai, kas ir klases instancēm. Piemēram, Car. klase var definēt atribūtus, piemēram, krāsu un zīmolu, kopā ar metodēm, piemēram, __drive__ vai __brake__.

Lai gan katram klases objektam var būt unikālas atribūtu vērtības, vienas klases objekti dala metodes un pamata uzvedības struktūru ar citiem klases ek­s­em­plā­riem. Piemēram, klases Car objekts my_car var tikt izveidots ar krāsu __red__ un zīmolu __Toyota__, bet metodes __drive__ un __brake__ au­to­mā­tis­ki tiks pārnestas uz ek­s­em­plā­ru.

Kā izveidot Python klases

Python valodā klases definē, iz­man­to­jot at­slēg­vār­du class.

class MyClass:
    # Constructor method called when creating an object
    def __init__(self, attribute1, attribute2):
        self.attribute1 = attribute1
        self.attribute2 = attribute2
    
    # Method defined within the class
    def my_method(self):
        return f"Attribute 1: {self.attribute1}, Attribute 2: {self.attribute2}"
python

Iepriekš minētais kods definē klasi ar nosaukumu MyClass. Tai ir kons­truk­tors __init__, kas tiek izsaukta pēc objekta izveides, ini­cia­li­zē­jot divus atribūtus: attribute1 un attribute2. Metode my_method atgriež formatētu virkni, kas satur šo atribūtu vērtības.

Lai izveidotu objektu no šīs klases, iz­man­to­jiet klases nosaukumu, aiz kura ir iekavās:

object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()
python

Python klašu iz­man­to­ša­nas piemēri

Python klases var izveidot sa­rež­ģī­tas sistēmas un at­tie­cī­bas starp dažādām vienībām. Turp­mā­ka­jās sadaļās mēs parādīsim, kā strādāt ar Python klasēm.

__str()__ funkcija

Python valodas funkcija __str__() ir īpaša metode, ko var definēt Python klasēs. Kad tā tiek īstenota, tā atgriež virkni, kas attēlo objektu lie­to­tā­jam draudzīgā veidā. Funkciju str() var izmantot tieši objektā vai kombinēt ar print() izteikumu.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"
person1 = Person("Alice", 30)
print(person1) # Output: Name: Alice, Age: 30
python

Ie­priek­šē­jā kodā __str__() metode Person klasē izveido formatētu virkni, kas parāda personas vārdu un vecumu. Kad tiek izpildīts print(person1), tas au­to­mā­tis­ki izsauc __str__() metodi person1 objektā un izvada virkni, ko atgriež metode.

Metožu de­fi­nē­ša­na Python klasēs

Python valodā var definēt metodes klasē, lai veiktu darbības ar klases objektiem. Šīs metodes var izsaukt iz­vei­do­tie objekti.

class Rectangle:
    def __init__(self, length, width):
        self.length = length
        self.width = width
    
    def area(self):
        return self.length * self.width
    def perimeter(self):
        return 2 * (self.length + self.width)
# Creating an object of the class
my_rectangle = Rectangle(5, 10)
# Calling methods of the object
area = my_rectangle.area()
perimeter = my_rectangle.perimeter()
# Printing the calculated values
print("Area =", area) # Output: Area = 50
print("Perimeter =", perimeter) # Output: Perimeter = 30
python

Python piemērā mēs definējam klasi Rectangle ar divām metodēm area() un perimeter(), kas aprēķina taisn­stū­ra laukumu un perimetru, iz­man­to­jot garumu un platumu, kas norādīts objekta ini­cia­li­zā­ci­jas laikā. Python valodā self klases metodē darbojas kā atsauce uz objektu, uz kuru metode tiek pašlaik piemērota.

Objekts my_rectangle tiek izveidots ar garumu 5 un platumu 10. Tad mēs izsaucam metodes area() un perimeter() šim objektam, lai ap­rē­ķi­nā­tu at­bil­sto­šās vērtības.

Objektu īpašību maiņa

. punktu operatoru var izmantot, lai piekļūtu objekta kon­krē­tiem at­ri­bū­tiem un at­jau­ni­nā­tu to vērtības. Jaunas vērtības var piešķirt tieši atribūtam.

person1.name = "Sarah"
person1.age = 35
python

At­slēg­vārds del tiek izmantots, lai dzēstu objekta īpašības.

del person1.name
python
Note

At­ce­rie­ties, ka instancu mainīgie atšķiras no Python klases mai­nī­ga­jiem. Klases mainīgie tiek definēti ārpus kons­truk­to­ra un tos var mainīt, tikai iz­man­to­jot klases nosaukumu.

Go to Main Menu