python oops concepts python classes
OOP-concepten in Python: Python-klassen en -objecten, overerving, overbelasting, overschrijven en gegevens verbergen
In de vorige tutorial hebben we enkele van de Invoer- / uitvoerbewerkingen die Python biedt.
We leerden hoe we deze functies konden gebruiken om de gegevens van de gebruiker of uit externe bronnen te lezen en ook hoe we die gegevens naar externe bronnen konden schrijven. We hebben ook geleerd hoe we een enorme code kunnen opsplitsen in kleinere methoden met behulp van functies en hoe we deze kunnen aanroepen of openen.
Verder lezen => Expliciete reeks gratis Python-trainingshandleidingen
In deze tutorial bespreken we het Advanced Python-concept genaamd de OOP's en verschillende soorten oops-concepten die beschikbaar zijn in Python en hoe en waar je ze kunt gebruiken.
Wat je leert:
- Bekijk de VIDEO-tutorials
- Klassen en objecten
- Constructor in Python
- Erfenis
- Methode overbelasting in Python
- Methode overschrijven in Python
- Gegevens verbergen in Python
- Gevolgtrekking
- Aanbevolen literatuur
Bekijk de VIDEO-tutorials
Video # 1: Klasse, objecten en constructor in Python
Video # 2: Concept van overerving in Python
Video # 3: Overbelasting, overschrijven en gegevens verbergen in Python
Klassen en objecten
- Python is een objectgeoriënteerde programmeertaal waarin programmeren meer de nadruk legt op objecten.
- Bijna alles in Python is objecten.
Klassen
Klasse in Python is een verzameling objecten, we kunnen een klasse zien als een blauwdruk of schets of prototype. Het bevat alle details van een object.
In het echte voorbeeld is Animal een klasse, omdat we verschillende soorten dieren in de wereld hebben en deze behoren allemaal tot een klasse die Animal heet.
Een klasse definiëren
In Python zouden we een klasse moeten definiëren met behulp van het trefwoord ‘class’.
Syntaxis:
Voorbeeld:
In het bovenstaande voorbeeld hebben we de klasse ‘Myclass’ gedeclareerd en hebben we respectievelijk enkele variabelen en functies gedeclareerd en gedefinieerd.
Om toegang te krijgen tot die functies of variabelen die aanwezig zijn in de klasse, kunnen we de klassenaam gebruiken door er een object van te maken.
Laten we eerst eens kijken hoe u toegang krijgt tot degenen die de naam van de klas gebruiken.
Voorbeeld:
Uitvoer
10
Uitgang:
Voorwerpen
Een object is meestal een instantie van een klasse. Het wordt gebruikt om toegang te krijgen tot alles wat in de klas aanwezig is.
Een object maken
Syntaxis:
Voorbeeld:
Hierdoor wordt een nieuw exemplaarobject gemaakt met de naam ‘ob’. Met behulp van deze objectnaam hebben we toegang tot alle attributen die aanwezig zijn in de klasse MyClass.
Voorbeeld:
Uitgang:
10
twintig
30
Uitgang:
classificatie van bugs bij het testen van software
Constructor in Python
Constructor in Python is een speciale methode die wordt gebruikt om de leden van een klasse tijdens runtime te initialiseren wanneer een object wordt gemaakt.
In Python hebben we een aantal speciale ingebouwde klassemethoden die beginnen met een dubbel onderstrepingsteken (__) en die een speciale betekenis hebben in Python.
De naam van de constructor is altijd __init __ ().
Elke klasse moet een constructor hebben, zelfs als u niet expliciet een constructor maakt, wordt er zelf een standaardconstructor gemaakt.
Voorbeeld:
Uitgang:
Som van a en b is: 27
Uitgang:
Als we in het bovenstaande voorbeeld waarnemen, roepen we de methode __init __ () niet aan, omdat deze automatisch wordt aangeroepen wanneer we een object voor die klasse maken en de eventuele gegevensleden initialiseren.
Onthoud altijd dat een constructor nooit waarden zal retourneren, en daarom geen retourinstructies bevat.
Erfenis
Overerving is een van de krachtigste concepten van OOP's.
Een klasse die de eigenschappen van een andere klasse erft, wordt Inheritance genoemd.
De klasse die de eigenschappen erft, wordt de onderliggende klasse / subklasse genoemd en de klasse waarvan de eigenschappen worden geërfd, wordt de bovenliggende klasse / basisklasse genoemd.
Python biedt drie soorten overerving:
- Enkele erfenis
- Overerving op meerdere niveaus
- Meerdere overerving
Aanbevolen literatuur = >> Overerving in Java
# 1) Eenmalige erfenis
Bij Single inheritance zal één klasse de eigenschappen van slechts één klasse erven.
Voorbeeld:
Uitgang:
Som van a en b is: 30
Aftrekken van c en d is: 40
Uitgang:
In het bovenstaande voorbeeld erven we de eigenschappen van de ‘Operations’ klasse in de klasse ‘MyClass’.
Daarom hebben we toegang tot alle methoden of instructies die aanwezig zijn in de klasse ‘Operations’ door de MyClass-objecten te gebruiken.
# 2) Overerving op meerdere niveaus
Bij overerving op meerdere niveaus fungeren een of meer klassen als een basisklasse.
Wat betekent dat de tweede klasse de eigenschappen van de eerste klasse zal erven en de derde klasse de eigenschappen van de tweede klasse. De tweede klas zal dus zowel fungeren als de ouderklas als als kindklas.
Voorbeeld:
Uitgang:
Som van a en b is: 30
Aftrekken van a en b is: 10
Vermenigvuldiging van a en b is: 200
Uitgang:
In het bovenstaande voorbeeld erft klasse ‘Aftrekken’ de eigenschappen van klasse ‘Optellen’ en krijgt klasse ‘Vermenigvuldiging’ de eigenschappen van klasse ‘Aftrekken’. Dus klasse ‘Aftrekken’ zal fungeren als zowel basisklasse als afgeleide klasse.
# 3) Meervoudige overerving
De klasse die de eigenschappen van meerdere klassen erft, wordt meervoudige overerving genoemd.
Verder lezen = >> Ondersteunt Java meerdere overerving?
Voorbeeld:
Uitgang:
Som van a en b is: 30
Aftrekken van c en d is: 10
Vermenigvuldiging van a en c is: 500
Uitgang:
Methode overbelasting in Python
Meerdere methoden met dezelfde naam maar met een ander type parameter of een ander aantal parameters wordt Method overloading genoemd
Voorbeeld:
hoe je een string per karakter splitst in python
Uitgang:
30
Uitgang:
Uitgang:
Overbelasting van de methode wordt niet ondersteund in Python, want als we in het bovenstaande voorbeeld zien, hebben we twee functies gedefinieerd met dezelfde naam ‘product’ maar met een ander aantal parameters.
Maar in Python wordt de laatst gedefinieerde versie bijgewerkt, waardoor het functieproduct (a, b) onbruikbaar wordt.
Methode overschrijven in Python
Als een subklassemethode dezelfde naam heeft die wordt gedeclareerd in de superklassemethode, wordt deze methode overschrijven genoemd
Om de methode te overschrijven, moeten we overerving gebruiken.
Voorbeeld:
Uitgang:
Ik ben in B
Uitgang:
Gegevens verbergen in Python
Gegevens verbergen betekent dat de gegevens privé worden gemaakt, zodat ze niet toegankelijk zijn voor de andere klasleden. Het is alleen toegankelijk in de klasse waarin het is gedeclareerd.
Als we in python de variabele willen verbergen, moeten we een dubbel onderstrepingsteken (__) voor de variabelenaam schrijven.
Voorbeeld:
Uitgang:
30
Hertraceren (meest recente oproep als laatste)
Bestand 'DataHiding.py', regel 10, in
print (al dan niet .__)
AttributeError: MyClass-instantie heeft
geen kenmerk ‘__num
Uitgang:
Gevolgtrekking
De klasse is een blauwdruk of sjabloon die alle details van een object bevat, waarbij het object een instantie van een klasse is.
- Als we de eigenschappen van een andere klasse in een klasse willen krijgen, dan kan dit worden bereikt door overerving.
- Overerving is van 3 soorten: enkele overerving, overerving op meerdere niveaus en meervoudige overerving.
- Overbelasting van methoden wordt niet ondersteund in Python.
- Methode overschrijven wordt gebruikt om de implementatie van dezelfde functie die in een andere klasse is gedefinieerd, op te heffen.
- We kunnen de gegevensattributen als privé maken of ze verbergen zodat ze niet toegankelijk zijn buiten de klasse waarin ze zijn gedefinieerd.
Onze aanstaande tutorial zal meer in detail uitleggen over aanvullende Python-concepten !!
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- Python-variabelen
- Python DateTime-zelfstudie met voorbeelden
- Python String-functies
- Python-zelfstudie voor beginners (hands-on GRATIS Python-training)
- Python-besturingsverklaringen (Python Continue, Break en Pass)
- Python-operators
- Python-functies
- Python introductie en installatieproces