Nun werden wir unsere eigene dynamische Array-Klasse erstellen! Wir werden eine eingebaute Bibliothek namens Ctypes verwenden. Schauen Sie sich die Dokumentation für weitere Informationen an, aber im Grunde wird es hier als ein rohes Array aus dem Ctypes-Modul verwendet. Wenn Sie sich dafür interessieren, schauen Sie sich das an: Ctypes Tutorial.
Wir werden den Code Schritt für Schritt durchgehen
# ctypes
ist eine fremde Funktionsbibliothek für Python. Sie bietet C-kompatible Datentypen und ermöglicht den Aufruf von Funktionen in DLLs oder Shared Libraries. Sie kann verwendet werden, um diese Bibliotheken in reinem Python zu verpacken.
import ctypes
wir werden unsere eigene Klasse erstellen, indem wir eine neue Klasse erstellen, die einen neuen Objekttyp erzeugt und es ermöglicht, neue Instanzen dieses Typs zu erstellen. Jede Klasseninstanz kann mit Attributen versehen werden, um ihren Zustand zu erhalten. Für weitere Informationen über Klassen klicken Sie hier.
class DynamicArray( ):
Erstellen von Methoden der Klasse :
def __init__(self):
__init__() ist eine reservierte Methode, die auch als Klassenkonstruktor bekannt ist. Sie wird ausgeführt, wenn eine Instanz erstellt wird.
self ist ähnlich wie dieses Schlüsselwort in Java und bezieht sich auf die Instanz, die erstellt wird.
def __len__(self):
def __getitem__(self, k):
__getitem__
wird verwendet, um Aufrufe wie self
zu implementieren.
def _resize():
Der Unterstrich-Präfix ist als Hinweis gedacht, dass eine Methode, die mit einem einzelnen Unterstrich beginnt, für den internen Gebrauch bestimmt ist. Diese Konvention ist in PEP 8 definiert.
def make_array(self, new_cap):
Diese Methode wird verwendet, um ein neues Array zu erstellen.
Lassen Sie uns nun eine Instanz unserer Klasse erstellen und mit ihr spielen.