Kā izveidot Python klases un objektus
Python klases ir kā būvniecības plāni vai veidnes. Jūs varat izmantot tās, lai rakstītu atkārtoti izmantojamu 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 eksemplāriem. Piemēram, klases Car objekts my_car var tikt izveidots ar krāsu __red__ un zīmolu __Toyota__, bet metodes __drive__ un __brake__ automātiski tiks pārnestas uz eksemplāru.
Kā izveidot Python klases
Python valodā klases definē, izmantojot atslēgvārdu 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}"pythonIepriekš minētais kods definē klasi ar nosaukumu MyClass. Tai ir konstruktors __init__, kas tiek izsaukta pēc objekta izveides, inicializē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, izmantojiet klases nosaukumu, aiz kura ir iekavās:
object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()pythonPython klašu izmantošanas piemēri
Python klases var izveidot sarežģītas sistēmas un attiecības starp dažādām vienībām. Turpmākajā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 lietotā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: 30pythonIepriekšē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 automātiski izsauc __str__() metodi person1 objektā un izvada virkni, ko atgriež metode.
Metožu definēšana Python klasēs
Python valodā var definēt metodes klasē, lai veiktu darbības ar klases objektiem. Šīs metodes var izsaukt izveidotie 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 = 30pythonPython piemērā mēs definējam klasi Rectangle ar divām metodēm area() un perimeter(), kas aprēķina taisnstūra laukumu un perimetru, izmantojot garumu un platumu, kas norādīts objekta inicializācijas 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 aprēķinātu atbilstošās vērtības.
Objektu īpašību maiņa
. punktu operatoru var izmantot, lai piekļūtu objekta konkrētiem atribūtiem un atjauninātu to vērtības. Jaunas vērtības var piešķirt tieši atribūtam.
person1.name = "Sarah"
person1.age = 35pythonAtslēgvārds del tiek izmantots, lai dzēstu objekta īpašības.
del person1.namepythonAtcerieties, ka instancu mainīgie atšķiras no Python klases mainīgajiem. Klases mainīgie tiek definēti ārpus konstruktora un tos var mainīt, tikai izmantojot klases nosaukumu.