Jak jsou v Pythonu implementovány seznamy

Nyní si vytvoříme vlastní třídu Dynamic Array! Budeme používat vestavěnou knihovnu Ctypes. Více informací najdete v dokumentaci, ale v podstatě ji zde budeme používat jako surové pole z modulu Ctypes. Pokud vás to velmi zajímá, podívejte se: Ctypes Tutorial.

Budeme krok za krokem procházet kód

# ctypes je knihovna cizích funkcí pro Python. Poskytuje datové typy kompatibilní s jazykem C a umožňuje volání funkcí v knihovnách DLL nebo sdílených knihovnách. Lze ji použít k zabalení těchto knihoven do čistého jazyka Python.

import ctypes

vytvoříme si vlastní třídu vytvořením nové třídy vytvoříme nový typ objektu, což umožní vytvářet nové instance tohoto typu. Ke každé instanci třídy mohou být připojeny atributy pro udržování jejího stavu. Více informací o třídě najdete zde.

třída DynamicArray( ):

vytváření metod třídy :

def __init__(self):

__init__() je vyhrazená metoda známá také jako konstruktor třídy. provádí se při vytváření instance.

self je podobné klíčovému slovu v javě, označuje vytvářenou instanci.

def __len__(self):

def __getitem__(self, k):

__getitem__ slouží k implementaci volání jako self.

def _resize():

Předpona podtržítka má napovědět, že metoda začínající jedním podtržítkem je určena pro vnitřní použití. Tato konvence je definována v PEP 8.

def make_array(self, new_cap):

Tato metoda slouží k vytvoření nového pole.

Nyní vytvoříme instanci naší třídy a pohrajeme si s ní V následujícím úryvku kódu můžete vidět některé operace prováděné seznamem.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.