Sådan oprettes Python-klasser og -objekter
Python-klasser er som byggeplaner eller skabeloner. Du kan bruge dem til at skrive genanvendelig kode i form af klasseattributter og metoder.
Hvad er Python-klasser?
En klasse er et abstrakt begreb, der beskriver attributter og metoder for objekter. En Python-klasse fungerer som en skabelon til oprettelse af konkrete objekter, som er instanser af klassen. For eksempel kan Car definere attributter som farve og mærke sammen med metoder som __drive__ eller __brake__.
Mens hvert objekt i en klasse kan have unikke attributværdier, deler objekter i samme klasse metoder og grundlæggende adfærdsrammer med andre instanser i klassen. For eksempel kan objektet my_car i klassen Car oprettes med farven __red__ og mærket __Toyota__, men metoderne __drive__ og __brake__ overføres automatisk til instansen.
Sådan oprettes Python-klasser
I Python definerer du klasser ved hjælp af nøgleordet 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}"pythonOvenstående kode definerer en klasse ved navn MyClass. Den har en konstruktør __init__, som kaldes ved oprettelse af objektet og initialiserer to attributter: attribute1 og attribute2. Metoden my_method returnerer en formateret streng, der indeholder værdierne for disse attributter.
For at udlede et objekt fra denne klasse skal du bruge klassens navn efterfulgt af parenteser:
object1 = MyClass("Value 1", "Value 2")
# Calling a method of the object
result = object1.my_method()pythonEksempler på, hvordan man bruger Python-klasser
Python-klasser kan skabe komplekse systemer og relationer mellem forskellige enheder. I de følgende afsnit viser vi dig, hvordan du arbejder med Python-klasser.
__str()__ funktion
Funktionen __str__() i Python er en speciel metode, som du kan definere inden for Python-klasser. Når den implementeres, returnerer den en streng, der repræsenterer en brugervenlig repræsentation af et objekt. Du kan bruge funktionen str() direkte på et objekt eller kombinere den med en 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: 30pythonI ovenstående kode opretter metoden __str__() i klassen Person en formateret streng, der viser en persons navn og alder. Når print(person1) udføres, kaldes metoden __str__() i objektet person1 automatisk, og den streng, der returneres af metoden, udskrives.
Definition af metoder i Python-klasser
I Python kan du definere metoder inden for en klasse til at udføre operationer på klassens objekter. Disse metoder kan derefter kaldes af de objekter, der oprettes.
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-eksemplet definerer vi klassen Rectangle med to metoder area() og perimeter(), som beregner rektanglets areal og omkreds ved hjælp af længden og bredden, der angives under objektinitialiseringen. I Python fungerer self i en klassemetode som en reference til det objekt, som metoden aktuelt anvendes på.
Objektet my_rectangle oprettes med en længde på 5 og en bredde på 10. Derefter kalder vi metoderne area() og perimeter() på dette objekt for at beregne de tilsvarende værdier.
Ændring af objekters egenskaber
. kan bruges til at få adgang til objektets specifikke attributter og opdatere deres værdier. Du kan tildele nye værdier direkte til attributten.
person1.name = "Sarah"
person1.age = 35pythonNøgleordet del bruges til at slette egenskaberne for et objekt.
del person1.namepythonHusk, at instansvariabler adskiller sig fra Python-klassevariabler. Klassevariabler defineres uden for konstruktøren og kan kun ændres ved hjælp af klassens navn.