Python -klassen en objecten
Python-klassen/objecten
Python is een objectgeoriënteerde programmeertaal.
Bijna alles in Python is een object, met zijn eigenschappen en methoden.
Een klasse is als een objectconstructor, of een "blauwdruk" voor het maken van objecten.
Een klas maken
Gebruik het sleutelwoord om een klas aan te maken class
:
Voorbeeld
Maak een klasse met de naam MyClass, met een eigenschap met de naam x:
class MyClass:
x = 5
Object maken
Nu kunnen we de klasse met de naam MyClass gebruiken om objecten te maken:
Voorbeeld
Maak een object met de naam p1 en druk de waarde van x af:
p1 = MyClass()
print(p1.x)
De __init__() Functie
De bovenstaande voorbeelden zijn klassen en objecten in hun eenvoudigste vorm en zijn niet echt nuttig in toepassingen in het echte leven.
Om de betekenis van klassen te begrijpen, moeten we de ingebouwde functie __init__() begrijpen.
Alle klassen hebben een functie genaamd __init__(), die altijd wordt uitgevoerd wanneer de klasse wordt gestart.
Gebruik de functie __init__() om waarden toe te wijzen aan objecteigenschappen of andere bewerkingen die nodig zijn wanneer het object wordt gemaakt:
Voorbeeld
Maak een klasse met de naam Persoon, gebruik de functie __init__() om waarden toe te wijzen voor naam en leeftijd:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John",
36)
print(p1.name)
print(p1.age)
Opmerking: de __init__()
functie wordt automatisch aangeroepen elke keer dat de klasse wordt gebruikt om een nieuw object te maken.
Objectmethoden
Objecten kunnen ook methoden bevatten. Methoden in objecten zijn functies die bij het object horen.
Laten we een methode maken in de klasse Person:
Voorbeeld
Voeg een functie in die een begroeting afdrukt en voer deze uit op het p1-object:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John",
36)
p1.myfunc()
Opmerking: de self
parameter is een verwijzing naar de huidige instantie van de klasse en wordt gebruikt om toegang te krijgen tot variabelen die tot de klasse behoren.
De zelfparameter:
De self
parameter is een verwijzing naar het huidige exemplaar van de klasse en wordt gebruikt om toegang te krijgen tot variabelen die bij de klasse horen.
Het hoeft geen naam te hebben self
, je kunt het noemen wat je wilt, maar het moet de eerste parameter zijn van elke functie in de klasse:
Voorbeeld
Gebruik de woorden mysillyobject en abc in plaats van zelf :
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John",
36)
p1.myfunc()
Objecteigenschappen wijzigen
U kunt eigenschappen van objecten als volgt wijzigen:
Voorbeeld
Stel de leeftijd van p1 in op 40:
p1.age = 40
Objecteigenschappen verwijderen
U kunt eigenschappen van objecten verwijderen door het
del
trefwoord te gebruiken:
Voorbeeld
Verwijder de eigenschap age van het p1-object:
del p1.age
Objecten verwijderen
U kunt objecten verwijderen door het del
trefwoord te gebruiken:
Voorbeeld
Verwijder het p1-object:
del p1
De pasverklaring
class
definities kunnen niet leeg zijn, maar als je om wat voor reden dan ook een class
definitie hebt zonder inhoud, plaats dan de pass
instructie om een fout te voorkomen.
Voorbeeld
class Person:
pass