Agora vamos criar a nossa própria classe Dynamic Array! Estaremos usando uma biblioteca construída chamada Ctypes. Confira a documentação para mais informações, mas ela basicamente será usada aqui como um array bruto do módulo Ctypes. Se você se achar muito interessado nela, confira: Ctypes Tutorial.
Passaremos passo a passo pelo código
# ctypes
é uma biblioteca de funções estrangeiras para Python. Ela fornece tipos de dados compatíveis com C, e permite a chamada de funções em DLLs ou bibliotecas compartilhadas. Ela pode ser usada para envolver essas bibliotecas em Python puro.
importar ctypes
criaremos nossa própria classe criando uma nova classe que cria um novo tipo de objeto, permitindo que novas instâncias desse tipo sejam feitas. Cada instância de classe pode ter atributos ligados a ela para manter seu estado. Para mais informações sobre a classe clique aqui.
class DynamicArray( ):
Criar métodos da classe :
def __init__(self):
__init__() é um método reservado também conhecido como o construtor da classe. ele é executado quando uma instância é criada.
self é similar a esta palavra-chave em java ela se refere à instância que está sendo criada.
def __len__(self):
def __getitem__(self, k):
__getitem__
é usado para implementar chamadas como self
.
def _resize():
O prefixo underscore é uma dica de que um método que começa com um único underscore é destinado a uso interno. Esta convenção é definida no PEP 8.
def make_array(self, new_cap):
Este método é usado para criar um novo array.
Agora vamos criar uma instância da nossa classe e brincar com ela abaixo do código snippet você pode ver algumas das operações feitas por list.