Hur man skapar Python-klasser och objekt
Python-klasser är som byggplaner eller mallar. Du kan använda dem för att skriva återanvändbar kod i form av klassattribut och metoder.
Vad är Python-klasser?
En klass är ett abstrakt begrepp som beskriver attribut och metoder för objekt. En Python-klass fungerar som en mall för att skapa konkreta objekt, som är instanser av klassen. Till exempel kan en Car definiera attribut som färg och märke, tillsammans med metoder som __drive__ eller __brake__.
Även om varje objekt i en klass kan ha unika attributvärden, delar objekt i samma klass metoder och grundläggande beteenderamverk med andra instanser i klassen. Till exempel kan objekt my_car i klass Car skapas med färgen __red__ och märket __Toyota__, men metoderna __drive__ och __brake__ överförs automatiskt till instansen.
Hur man skapar Python-klasser
I Python definierar du klasser med hjälp av nyckelordet 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}"pythonKoden ovan definierar en klass med namnet MyClass. Den har en konstruktor __init__, som anropas vid objektskapandet och initialiserar två attribut: attribute1 och attribute2. Metoden my_method returnerar en formaterad sträng som innehåller värdena för dessa attribut.
För att härleda ett objekt från denna klass, använd klassnamnet följt av parenteser:
object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()pythonExempel på hur man använder Python-klasser
Python-klasser kan skapa komplexa system och relationer mellan olika enheter. I följande avsnitt visar vi hur du arbetar med Python-klasser.
__str()__ funktion
Funktionen __str__() i Python är en speciell metod som du kan definiera inom Python-klasser. När den implementeras returnerar den en sträng som representerar en användarvänlig representation av ett objekt. Du kan använda funktionen str() direkt på ett objekt eller kombinera den med ett print() uttryck.
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: 30pythonI koden ovan skapar metoden __str__() i klassen Person en formaterad sträng som visar en persons namn och ålder. När print(person1) exekveras anropar den automatiskt metoden __str__() i objektet person1 och matar ut den sträng som returneras av metoden.
Definiera metoder i Python-klasser
I Python kan du definiera metoder inom en klass för att utföra operationer på klassens objekt. Dessa metoder kan sedan anropas av de objekt som skapas.
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 = 30pythonI Python-exemplet definierar vi klassen Rectangle med två metoder area() och perimeter(), som beräknar rektangelns area och omkrets med hjälp av längden och bredden som anges vid objektinitialiseringen. I Python fungerar self i en klassmetod som en referens till objektet som metoden för närvarande tillämpas på.
Objektet my_rectangle skapas med en längd på 5 och en bredd på 10. Vi anropar sedan metoderna area() och perimeter() på detta objekt för att beräkna motsvarande värden.
Ändra objektens egenskaper
Operatorn . dot kan användas för att komma åt objektets specifika attribut och uppdatera deras värden. Du kan tilldela nya värden direkt till attributet.
person1.name = "Sarah"
person1.age = 35pythonNyckelordet del används för att radera egenskaperna för ett objekt.
del person1.namepythonKom ihåg att instansvariabler skiljer sig från Python-klassvariabler. Klassvariabler definieras utanför konstruktorn och kan endast ändras med hjälp av klassnamnet.