Razredi v Pythonu so podobni gradbenim načrtom ali predlogam. Uporabite jih lahko za pisanje ponovno uporabne kode v obliki atributov in metod razreda.

Kaj so razredi v Pythonu?

Razred je ab­strak­ten pojem, ki opisuje lastnosti in metode objektov. Razred v Pythonu deluje kot predloga za ustvar­ja­nje kon­kre­tnih objektov, ki so primeri razreda. Na primer, razred Car lahko definira lastnosti, kot sta barva in znamka, skupaj z metodami, kot sta __drive__ ali __brake__.

Medtem ko ima lahko vsak objekt razreda edin­stve­ne vrednosti atributov, objekti istega razreda delijo metode in osnovni okvir vedenja z drugimi primerki v razredu. Na primer, objekt my_car razreda Car se lahko ustvari z barvo __red__ in blagovno znamko __Toyota__, vendar se metode __drive__ in __brake__ samodejno prenesejo na primer.

Kako ustvariti razrede Python

V Pythonu razrede opre­de­lju­je­te s ključno besedo 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

Zgornja koda definira razred z imenom MyClass. Ima kon­struk­tor __init__, ki se pokliče ob ustvar­ja­nju objekta in ini­ci­a­li­zi­ra dva atributa: attribute1 in attribute2. Metoda my_method vrne oblikovan niz, ki vsebuje vrednosti teh atributov.

Če želite izpeljati objekt iz te razreda, uporabite ime razreda, ki mu sledijo oklepaji:

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

Primeri uporabe razredov Python

Pythonove razrede lahko uporabite za ustvar­ja­nje kom­ple­ksnih sistemov in odnosov med raz­lič­ni­mi en­ti­te­ta­mi. V na­sle­dnjih poglavjih vam bomo pokazali, kako delati s Pytho­no­vi­mi razredi.

__str()__ funkcija

Funkcija __str__() v Pythonu je posebna metoda, ki jo lahko opre­de­li­te znotraj razredov Python. Ko je im­ple­men­ti­ra­na, vrne niz, ki pred­sta­vlja upo­rab­ni­ku prijazen prikaz objekta. Funkcijo str() lahko uporabite ne­po­sre­dno na objektu ali jo kom­bi­ni­ra­te z izjavo 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

V zgornjem kodu metoda __str__() v razredu Person ustvari oblikovan niz, ki prikazuje ime in starost osebe. Ko se izvede print(person1), samodejno pokliče metodo __str__() objekta person1 in izpiše niz, ki ga vrne metoda.

Opre­de­lje­va­nje metod v razredih Python

V Pythonu lahko v razredu opre­de­li­te metode za izvajanje operacij na objektih razreda. Te metode lahko nato pokličejo ustvar­je­ni 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

V primeru Python opre­de­li­mo razred Rectangle z dvema metodama area() in perimeter(), ki iz­ra­ču­na­ta površino in obseg pra­vo­ko­tni­ka na podlagi dolžine in širine, navedenih med ini­ci­a­li­za­ci­jo objekta. V Pythonu self v metodi razreda deluje kot sklic na objekt, na katerega se metoda trenutno uporablja.

Objekt my_rectangle je ustvarjen z dolžino 5 in širino 10. Nato pokličemo metode area() in perimeter() na tem objektu, da iz­ra­ču­na­mo ustrezne vrednosti.

Spre­mi­nja­nje lastnosti objektov

Operator . dot se lahko uporabi za dostop do določenih atributov objekta in po­so­do­bi­tev njihovih vrednosti. Nove vrednosti lahko dodelite ne­po­sre­dno atributu.

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

Ključna beseda del se uporablja za brisanje lastnosti objekta.

del person1.name
python
Note

Ne pozabite, da se spre­men­ljiv­ke instance raz­li­ku­je­jo od spre­men­ljivk razreda Python. Spre­men­ljiv­ke razreda so de­fi­ni­ra­ne zunaj kon­struk­tor­ja in jih je mogoče spre­me­ni­ti samo z uporabo imena razreda.

Go to Main Menu