Hur listor implementeras i Python

Nu ska vi skapa vår egen Dynamic Array-klass! Vi kommer att använda ett inbyggt bibliotek som heter Ctypes. Kolla in dokumentationen för mer information, men det kommer i princip att användas här som en rå array från Ctypes-modulen. Om du finner dig själv mycket intresserad av det, kolla in: Ctypes Tutorial.

Vi kommer att gå igenom koden steg för steg

# ctypes är ett bibliotek för utländska funktioner för Python. Det tillhandahåller C-kompatibla datatyper och gör det möjligt att anropa funktioner i DLL:er eller delade bibliotek. Det kan användas för att svepa in dessa bibliotek i ren Python.

import ctypes

Vi kommer att skapa vår egen klass Genom att skapa en ny klass skapas en ny typ av objekt, vilket gör det möjligt att skapa nya instanser av den typen. Varje klassinstans kan ha attribut knutna till sig för att upprätthålla dess tillstånd. För mer information om klass gå till klicka här.

klass DynamicArray( ):

Skapa metoder för klassen :

def __init__(self):

__init__() är en reserverad metod som även kallas för klasskonstruktör. den utförs när en instans skapas.

self liknar det här nyckelordet i java det refererar till den instans som skapas.

def __len__(self):

def __getitem__(self, k):

__getitem__ används för att implementera anrop som self.

def _resize():

Understrykningsprefixet är tänkt som en ledtråd om att en metod som börjar med en enda understrykning är avsedd för intern användning. Denna konvention definieras i PEP 8.

def make_array(self, new_cap):

Denna metod används för att skapa en ny array.

Nu kan vi skapa en instans av vår klass och leka med den i nedanstående kodutdrag kan du se några av de operationer som utförs av list.

Lämna ett svar

Din e-postadress kommer inte publiceras.