Kako ustvariti razrede in objekte v Pythonu
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 abstrakten pojem, ki opisuje lastnosti in metode objektov. Razred v Pythonu deluje kot predloga za ustvarjanje konkretnih 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 edinstvene 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 opredeljujete 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}"pythonZgornja koda definira razred z imenom MyClass. Ima konstruktor __init__, ki se pokliče ob ustvarjanju objekta in inicializira 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()pythonPrimeri uporabe razredov Python
Pythonove razrede lahko uporabite za ustvarjanje kompleksnih sistemov in odnosov med različnimi entitetami. V naslednjih poglavjih vam bomo pokazali, kako delati s Pythonovimi razredi.
__str()__ funkcija
Funkcija __str__() v Pythonu je posebna metoda, ki jo lahko opredelite znotraj razredov Python. Ko je implementirana, vrne niz, ki predstavlja uporabniku prijazen prikaz objekta. Funkcijo str() lahko uporabite neposredno na objektu ali jo kombinirate 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: 30pythonV 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.
Opredeljevanje metod v razredih Python
V Pythonu lahko v razredu opredelite metode za izvajanje operacij na objektih razreda. Te metode lahko nato pokličejo ustvarjeni 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 = 30pythonV primeru Python opredelimo razred Rectangle z dvema metodama area() in perimeter(), ki izračunata površino in obseg pravokotnika na podlagi dolžine in širine, navedenih med inicializacijo 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 izračunamo ustrezne vrednosti.
Spreminjanje lastnosti objektov
Operator . dot se lahko uporabi za dostop do določenih atributov objekta in posodobitev njihovih vrednosti. Nove vrednosti lahko dodelite neposredno atributu.
person1.name = "Sarah"
person1.age = 35pythonKljučna beseda del se uporablja za brisanje lastnosti objekta.
del person1.namepythonNe pozabite, da se spremenljivke instance razlikujejo od spremenljivk razreda Python. Spremenljivke razreda so definirane zunaj konstruktorja in jih je mogoče spremeniti samo z uporabo imena razreda.