Python-klasser är som bygg­pla­ner eller mallar. Du kan använda dem för att skriva åter­an­vänd­bar kod i form av klas­sat­tri­but 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, till­sam­mans med metoder som __drive__ eller __brake__.

Även om varje objekt i en klass kan ha unika at­tri­but­vär­den, delar objekt i samma klass metoder och grund­läg­gan­de be­te­en­de­ram­verk 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 au­to­ma­tiskt till instansen.

Hur man skapar Python-klasser

I Python de­fi­ni­e­rar du klasser med hjälp av nyc­kelor­det 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

Koden ovan de­fi­ni­e­rar en klass med namnet MyClass. Den har en kon­struk­tor __init__, som anropas vid ob­jekt­ska­pan­det och ini­ti­a­li­se­rar två attribut: attribute1 och attribute2. Metoden my_method re­tur­ne­rar en for­ma­te­rad sträng som in­ne­hål­ler värdena för dessa attribut.

För att härleda ett objekt från denna klass, använd klass­nam­net följt av pa­ren­te­ser:

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

Exempel på hur man använder Python-klasser

Python-klasser kan skapa komplexa system och re­la­tio­ner mellan olika enheter. I följande avsnitt visar vi hur du arbetar med Python-klasser.

__str()__ funktion

Funk­tio­nen __str__() i Python är en speciell metod som du kan definiera inom Python-klasser. När den im­ple­men­te­ras re­tur­ne­rar den en sträng som re­pre­sen­te­rar en an­vän­dar­vän­lig re­pre­sen­ta­tion av ett objekt. Du kan använda funk­tio­nen 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: 30
python

I koden ovan skapar metoden __str__() i klassen Person en for­ma­te­rad sträng som visar en persons namn och ålder. När print(person1) exekveras anropar den au­to­ma­tiskt metoden __str__() i objektet person1 och matar ut den sträng som re­tur­ne­ras av metoden.

Definiera metoder i Python-klasser

I Python kan du definiera metoder inom en klass för att utföra ope­ra­tio­ner 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 = 30
python

I Python-exemplet de­fi­ni­e­rar vi klassen Rectangle med två metoder area() och perimeter(), som beräknar rek­tang­elns area och omkrets med hjälp av längden och bredden som anges vid ob­jek­ti­ni­ti­a­li­se­ring­en. I Python fungerar self i en klass­me­tod som en referens till objektet som metoden för när­va­ran­de 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 mot­sva­ran­de värden.

Ändra objektens egen­ska­per

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 at­tri­bu­tet.

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

Nyc­kelor­det del används för att radera egen­ska­per­na för ett objekt.

del person1.name
python
Notis

Kom ihåg att in­st­an­sva­ri­ab­ler skiljer sig från Python-klassva­ri­ab­ler. Klassva­ri­ab­ler de­fi­nie­ras utanför kon­struk­torn och kan endast ändras med hjälp av klass­nam­net.

Gå till huvudmeny