Python-klassen en -objecten. Deel 9 Python-cursus van beginner tot gevorderd in 11 blogposts

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.

Python-klassen en objecten – inhoudsopgave:

  1. Python-klassen
  2. Python-klassen – definitie
  3. Initialisatie van Python-klassen
  4. Laten we onze eerste Python-klasse schrijven
  5. Attributen
  6. Gedrag van de klasse
  7. Objecten in Python
  8. Overerving

Python-klassen

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.

Python-klassen – definitie

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.

Initialisatie van Python-klassen

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.

Laten we onze eerste Python-klasse schrijven

# 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.

Attributen

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.

Gedrag 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.

Self:

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.

Methoden:

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.

Objecten in Python

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

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.

Robert Whitney

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.

View all posts →

Robert Whitney

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.

Share
Published by
Robert Whitney

Recent Posts

Product Hunt – een startup effectief promoten

Startups zijn een leidend businessmodel in de recente tijd en elk jaar worden er steeds…

28 minutes ago

Hoe kan sociale media de zichtbaarheid van uw bedrijf vergroten?

Wat zijn de voordelen van sociale media? Kan het gerichte traffic naar je bedrijfswebsite brengen?…

2 hours ago

Top tips om je Amazon verkooprang te verhogen

Als je verkoopt op 's werelds populairste marktplaats, maak je je zeker zorgen over de…

4 hours ago

Top 5 tools voor het maken van landingspagina’s

De maatstaf voor de effectiviteit van een marketeer is het aantal conversies, dat wil zeggen…

6 hours ago

De kracht van AI in muziekcreatie verkennen | AI in business #33

Als het gaat om AI in muziekproductie, is het het beste in co-creatie, en vooral…

8 hours ago

Scrum Gids | 12. Samenwerking tussen Product Owner en Scrum Master

In het artikel van vandaag zullen we het onderwerp van samenwerking tussen de Product Owner…

9 hours ago