Nu gaan we onze eigen Dynamic Array klasse maken! We zullen gebruik maken van een ingebouwde bibliotheek genaamd Ctypes. Bekijk de documentatie voor meer info, maar in principe zal het hier gebruikt worden als een ruwe array uit de Ctypes module. Als je er erg in geïnteresseerd bent, kijk dan eens naar: Ctypes Tutorial.
We zullen stap voor stap door de code lopen
# ctypes
is een buitenlandse functiebibliotheek voor Python. Het biedt C-compatibele datatypes, en maakt het aanroepen van functies in DLL’s of gedeelde bibliotheken mogelijk. Het kan gebruikt worden om deze bibliotheken in te pakken in pure Python.
import ctypes
we zullen onze eigen klasse maken het creëren van een nieuwe klasse creëert een nieuw type object, waardoor nieuwe instanties van dat type kunnen worden gemaakt. Aan elke instantie van een klasse kunnen attributen worden gekoppeld om de toestand ervan te behouden. Voor meer informatie over de klasse klik hier.
class DynamicArray( ):
Methoden van de klasse maken :
def __init__(self):
__init__() is een gereserveerde methode ook bekend als de klasse constructor. het wordt uitgevoerd wanneer een instantie wordt gemaakt.
self is vergelijkbaar met dit sleutelwoord in java het verwijst naar de instantie die wordt gemaakt.
def __len__(self):
def __getitem__(self, k):
__getitem__
wordt gebruikt om aanroepen als self
te implementeren.
def _resize():
De underscore prefix is bedoeld als een hint dat een methode die begint met een enkele underscore, bedoeld is voor intern gebruik. Deze conventie is gedefinieerd in PEP 8.
def make_array(self, new_cap):
Deze methode wordt gebruikt om een nieuwe array te maken.
Laten we nu een instantie van onze klasse maken en ermee spelen in het onderstaande codefragment kunt u enkele bewerkingen zien die door list worden uitgevoerd.