Python klasės yra tarsi statybos planai ar šablonai. Juos galite naudoti, kad pa­ra­šy­tu­mė­te pa­kar­to­ti­nai naudojamą kodą klasės atributų ir metodų forma.

Kas yra Python klasės?

Klasė yra abstrakti sąvoka, api­bū­di­nan­ti objektų atributus ir metodus. Python klasė veikia kaip šablonas, skirtas konkrečių objektų, kurie yra klasės instancės, kūrimui. Pa­vyz­džiui, klasė Car gali apibrėžti tokius atributus kaip spalva ir prekės ženklas, taip pat tokius metodus kaip __drive__ arba __brake__.

Nors kiek­vie­nas klasės objektas gali turėti unikalias atributų vertes, tos pačios klasės objektai dalijasi metodais ir pag­rin­di­niu elgesio modeliu su kitais klasės eg­zemp­lio­riais. Pa­vyz­džiui, klasės Car objektas my_car gali būti sukurtas su spalva __red__ ir prekės ženklu __Toyota__, bet metodai __drive__ ir __brake__ bus au­to­ma­tiš­kai perkelti į eg­zemp­lio­rių.

Kaip kurti Python klases

Python kalboje klases api­brė­žia­te naudodami raktinį žodį 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

Pirmiau pateiktas kodas apibrėžia klasę, pavadintą MyClass. Ji turi konst­ruk­to­rių __init__, kuris iš­kvie­čia­mas objekto kūrimo metu ir ini­ci­juo­ja du atributus: attribute1 ir attribute2. Metodas my_method grąžina su­for­ma­tuo­tą eilutę, kurioje yra šių atributų reikšmės.

Norėdami išvesti objektą iš šios klasės, naudokite klasės pa­va­di­ni­mą, po kurio nu­ro­dy­ki­te skliaus­te­lius:

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

Python klasių naudojimo pa­vyz­džiai

Python klasės gali kurti su­dė­tin­gas sistemas ir ryšius tarp skirtingų objektų. Toliau pa­teik­tuo­se skyriuose pa­ro­dy­si­me, kaip dirbti su Python klasėmis.

__str()__ funkcija

Python kalbos funkcija __str__() yra specialus metodas, kurį galite apibrėžti Python klasėse. Įgy­ven­di­nus šią funkciją, ji grąžina eilutę, kuri atspindi var­to­to­jui su­pran­ta­mą objekto atvaizdą. Funkciją str() galite naudoti tie­sio­giai objekte arba derinti ją su teiginiu print().

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

Pirmiau pa­teik­ta­me kode __str__() metodas Person klasėje sukuria su­for­ma­tuo­tą eilutę, kurioje rodomas asmens vardas ir amžius. Kai print(person1) yra vykdomas, jis au­to­ma­tiš­kai iššaukia __str__() metodą person1 objekto ir išveda eilutę, kurią grąžina metodas.

Metodų api­brė­ži­mas Python klasėse

Python kalboje galite apibrėžti metodus klasėje, kad būtų at­lie­ka­mos ope­ra­ci­jos su klasės objektais. Šiuos metodus gali iškviesti sukurti objektai.

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 pavyzdyje api­brė­žia­me klasę Rectangle su dviem metodais area() ir perimeter(), kurie ap­skai­čiuo­ja sta­čia­kam­pio plotą ir perimetrą, naudodami objekto ini­ci­ja­vi­mo metu nurodytą ilgį ir plotį. Python kalboje self klasės metode veikia kaip nuoroda į objektą, kuriam šiuo metu taikomas metodas.

Objektas my_rectangle sukurtas su 5 ilgio ir 10 pločio mat­me­ni­mis. Tada šiam objektui taikome metodus area() ir perimeter(), kad ap­skai­čiuo­tu­me ati­tin­ka­mas vertes.

Objektų savybių keitimas

. taškų ope­ra­to­rius gali būti nau­do­ja­mas norint pasiekti konk­re­čius objekto atributus ir at­nau­jin­ti jų vertes. Naujas vertes galite priskirti tie­sio­giai atributui.

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

Raktinis žodis del nau­do­ja­mas objekto savybėms ištrinti.

del person1.name
python
Note

Atminkite, kad ins­tan­ci­nės kin­ta­mie­ji skiriasi nuo Python klasės kintamųjų. Klasės kin­ta­mie­ji api­brė­žia­mi už konst­ruk­to­riaus ribų ir juos galima keisti tik naudojant klasės pa­va­di­ni­mą.

Go to Main Menu