我写我自己的List
是包装另一个类list
式的数组类型。 该阵列有一个固定的容量,并且当数组已满我想要的容量自动翻倍。 例如,如果我的基容量为5则当数组已满并且加入另一个项目时,它添加项之前将容量加倍,10。
这里是我的代码:
from referential_array import build_array
class List:
def __init__(self,capacity):
assert capacity >0, "Capacity cannot be negative"
self.count = 0
self._array = build_array(capacity)
self.capacity = capacity
def append(self,item):
has_space_left = not self.is_full()
if has_space_left:
self._array[self.count] = item
self.count+=1
else: #Issue here
create_more_space = List.__init__(self,capacity*2) #if list is full, capacity *2
self.count+=1
if __name__== "__main__":
myList = List(6)
myList.append(4)
myList.append(7)
myList.append(1)
myList.append(3)
myList.append(2)
myList.append(17)
myList.append(18)
myList.append(20)
下面,首先我指定的大小为6。然后我继续追加超过600项以上。 由右,当Python看到有不再有任何空间时,容量将增加一倍,因此18和20可以被附加为好。
我收到一个错误说能力不追加功能定义。 我试图让输出是:
4
7
1
3
2
17
18
20