Dit artikel helpt de lezer de basis Python-klassen te begrijpen, samen met enkele basisapplicaties in de echte wereld. We zullen Visual Studio Code gebruiken als onze code-editor. Als je Visual Studio Code nog niet hebt geïnstalleerd, zijn de instructies te vinden in de eerste blog.
Zoals we in de eerste blog hebben besproken, is Python een objectgeoriënteerde programmeertaal. Er zijn drie zinnen die erg belangrijk zijn bij het bespreken van objectgeoriënteerd programmeren in Python. De eerste is klasse, de tweede is een object, de derde is de overerving. Laten we beginnen met wat een klasse is.
Een klasse is een blauwdruk of een uitbreidbaar programma dat helpt bij het creëren van objecten. Een klasse bestaat uit gedrag en staat. Het gedrag van een klasse wordt gedemonstreerd door functies binnen de klasse die methoden worden genoemd. De staat van de klasse wordt gedemonstreerd met behulp van de variabelen binnen de klasse die attributen worden genoemd.
Een klasse kan worden geïnitialiseerd met de volgende syntaxis.
Een klasse in Python wordt gedefinieerd met het sleutelwoord “class” gevolgd door de naam van de klasse. De basis syntaxis van een Python-functie wordt hieronder geïllustreerd.
Bijvoorbeeld:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Maak een functie # klasse Aap class classname:
Opmerking: de klassenaam heeft ook dezelfde normen als de variabele declaratie.
# eerste klasse class Animals: pass
In het bovenstaande codeblok hebben we een klasse geschreven die we verder zullen ontwikkelen in de blog. Zoals je kunt zien, hebben we het sleutelwoord “class” gebruikt.
Laten we nu zien hoe we componenten aan de klasse van dieren kunnen toevoegen. Maar voordat we dat doen, laten we leren over de “__init__()” constructor. Constructors worden gebruikt voor objectinstantiatie. Hier wordt __init__() gebruikt voor objectinstantiatie. De constructor kan standaard zijn met alleen self als argument of geparametriseerd met vereiste argumenten.
Er zijn twee verschillende soorten attributen, de eerste zijn klassevariabelen en de tweede zijn instantievariabelen. De klassevariabelen zijn de variabelen die eigendom zijn van de klasse. Ook zijn deze variabelen beschikbaar voor alle instanties van de klasse. Daarom zal hun waarde niet veranderen, zelfs niet als de instantie verandert.
# klassevariabelen class Animals: type=”mammals”
De instantievariabelen zijn de variabelen die toebehoren aan de instanties zelf. Daarom zullen ze hun waarde veranderen naarmate de instantie verandert.
# klassevariabelen class Animals: def __init__(self,legs): self.legs=legs
Opmerking: Instantievariabelen zijn niet toegankelijk via de klassenaam, omdat ze veranderen afhankelijk van het object dat er toegang toe heeft.
Laten we een programma maken dat zowel klasse- als instantievariabelen declareert.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs
In het bovenstaande programma hebben we zowel instantie- als klassevariabelen gebruikt. Deze variabelen vormen dus attributen van de klasse.
Zoals besproken, wordt het gedrag van de klasse gedefinieerd door de methoden binnen de klasse. Maar voordat we in de discussie over gedrag duiken, moeten we beginnen met het bespreken van de “self” parameter, die we in de __init__() hebben gebruikt.
In zeer eenvoudige termen, wanneer we iets aan self hechten, zegt het dat de variabele of functie tot die klasse behoort. Ook kunnen met “self” de attributen of methoden van de klasse worden benaderd.
Klassemethoden zijn functies binnen de klasse die hun eerste argument als “self” hebben. Een methode binnen de klasse wordt gedefinieerd met het sleutelwoord “def”.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”)
In de bovenstaande methode “bark”, aangezien we de naamvariabele gebruiken, die een instantievariabele is, benaderen we deze met “self” en deze functie zou “woof woof!!!” afdrukken, alleen als de naam die aan het object is gegeven, hond is.
We hebben de meeste componenten van een klasse besproken, maar je vraagt je misschien af hoe je kunt zien of de klasse werkt. Het antwoord hierop is dat we, tenzij we een object van de klasse maken, niet kunnen zien wat de klasse doet. Laten we nu een object van de klasse definiëren en maken.
Een object is een instantie van de klasse. Een klasse is slechts een blauwdruk, maar het object is een instantie van de klasse die werkelijke waarden heeft.
De code voor het definiëren of creëren van een object wordt hieronder geïllustreerd.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4)
Om een object te maken, is de syntaxis objectnaam=klassenaam(argumenten). Hier geven we dus de naam van het dier als hond en het aantal benen als 4. Nu is het object van de klasse gemaakt, de volgende stap is om het object te gebruiken om toegang te krijgen tot zijn attributen. Om de attributen van een klasse met behulp van het object te benaderen, onthoud dat alleen de instantievariabelen toegankelijk zijn via het object. De instantievariabelen in onze klasse zijn naam en benen.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs)
Zoals we kunnen zien, kunnen we instantievariabelen benaderen met behulp van puntnotatie.
Laten we de uitvoer verkennen.
#Uitvoer dog 4
Om toegang te krijgen tot de functies binnen de klasse of methoden, zullen we de puntnotatie gebruiken. Het voorbeeld wordt hieronder geïllustreerd.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) print(dog.bark())
#Uitvoer dog 4 woof woof!!!
In het bovenstaande voorbeeld zien we dat we de klasse methode “bark” benaderen met behulp van het hondobject dat we hebben gemaakt. We zien dat we de “self” parameter niet gebruiken in de functieargumenten. Dit komt omdat we het gebruik van “self” buiten de klasse niet nodig hebben, aangezien het object zelf als self fungeert.
Overerving is een proces waarbij de klasse-attributen en -methoden kunnen worden doorgegeven aan een kindklasse. De klasse waarvan de kindklasse erft, is de ouderklasse. De syntaxis voor overerving wordt hieronder geïllustreerd.
#Overerving class parent: class child(parent):
Uit de bovenstaande illustratie kunnen we zien dat we voor de syntaxis van overerving de naam van de ouderklasse als argument aan de kindklasse geven. Laten we de Animals-klasse gebruiken en een kindklasse genaamd hond maken. Dit wordt hieronder geïllustreerd.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed
In de bovenstaande voorbeeldcode hebben we een hondenklasse gemaakt die de dierenklasse uitbreidt die we eerder hebben gemaakt. We gebruiken ook de parameters van de Animals met behulp van de Animals.__init__(argumenten) die naam en benen heeft die aan de hondenklasse zullen worden geërfd. Vervolgens maken we een instantie-attribuut voor de hondenklasse, namelijk ras.
Laten we nu een object voor de hondenklasse maken en de attributen en methoden van de dierenklasse benaderen.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed pug=Dog("dog",4,"pug") pug.breed pug.name pug.legs pug.bark()
#Uitvoer pug dog 4 woof woof!!!
Zoals we uit de uitvoer kunnen zien, worden de attributen en methoden van de ouderklasse benaderd door het object van de kindklasse.
In deze blog hebben we enkele basisprincipes van klassen in Python behandeld. In de volgende blogpost zullen we het onderwerp bestandsbeheer behandelen.
Je vindt onze JavaScript-cursus van beginner tot gevorderd ook leuk.
JavaScript-expert en instructeur die IT-afdelingen coacht. Zijn belangrijkste doel is om de productiviteit van het team te verhogen door anderen te leren hoe ze effectief kunnen samenwerken tijdens het coderen.
Startups zijn een leidend businessmodel in de recente tijd en elk jaar worden er steeds…
Wat zijn de voordelen van sociale media? Kan het gerichte traffic naar je bedrijfswebsite brengen?…
Als je verkoopt op 's werelds populairste marktplaats, maak je je zeker zorgen over de…
De maatstaf voor de effectiviteit van een marketeer is het aantal conversies, dat wil zeggen…
Als het gaat om AI in muziekproductie, is het het beste in co-creatie, en vooral…
In het artikel van vandaag zullen we het onderwerp van samenwerking tussen de Product Owner…