Dynami c Ошибка типа массива при выполнении функции списка - PullRequest
0 голосов
/ 06 мая 2020

Новое в структурах данных и алгоритмах, пробующих Dynami c Массивы

import ctypes

class DynamicArray(object):

    def __init__(self):
        self.count = 0
        self.capacity = 1
        self.A = self.make_array(self.capacity)

    def __len__(self):

        return self.count

    def get(self, x):

        if not 0 <= x < self.count:
            return IndexError(f'Your value is {x} is out of bounds ')


        return self.A[x]


    def append(self, x):

        if self.count == self.capacity:

            self._resize(2 * self.capacity)

        self.A[self.count] = x
        self.count += 1


    def _resize(self, new_cap):

        B = self.make_array(new_cap)
        for i in range(self.count):
            B[x] = self.A[x]

        self.A = B
        self.capacity = new_cap


    def make_array(self):
        return (new_cap * ctypes.py_objects)()



arr = DynamicArray()

arr.append(1)

При тестовом запуске кода я получаю сообщение об ошибке:

ln8: self.A = sekf.make_array (self.capacity) TypeError: make_array () принимает 1 позиционный аргумент, и было дано 2

Я не понимаю, потому что я передал только один аргумент, если я не понимаю, пожалуйста, помогите

1 Ответ

0 голосов
/ 06 мая 2020

В функции

def make_array(self, new_cap):
         return (new_cap * ctypes.py_objects)()

Отсутствует аргумент 'new_cap', поэтому возникает ошибка 1 аргумента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...