Skip to content

Commit e7c5e5d

Browse files
committed
02
1 parent f4574de commit e7c5e5d

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
class Array(object):
2+
"""
3+
数组
4+
"""
5+
def __init__(self, size=10):
6+
self._size = size
7+
self._items = [None] * size
8+
9+
def __getitem__(self, index):
10+
return self._items[index]
11+
12+
def __setitem__(self, index, item):
13+
self._items[index] = item
14+
15+
def __len__(self):
16+
return self._size
17+
18+
def clear(self):
19+
for i in range(len(self._items)):
20+
self._items[i] = None
21+
22+
def __iter__(self):
23+
yield from self._items
24+
25+
26+
def test_array():
27+
array = Array(4)
28+
array[0] = 1
29+
assert(array[0]==1)
30+
assert(array[1]==None)
31+
32+
array.clear()
33+
assert([x for x in array] == [None] * 4)
34+
35+
36+
if __name__ == "__main__":
37+
test_array()

0 commit comments

Comments
 (0)