# -*- coding:utf-8 -*-
class Array(object):
def __init__(self, size = 32):
self.__size = size
self.__items = [None] * size
def __getitem__(self, item):
# 判断是否越界,要先判断数组越界,越界可能为空
if item > self.__size - 1:
raise Exception('错误:数组越界')
elif self.__items[item] is None:
raise Exception('错误:数组在该位置没有被赋值')
return self.__items[item]
def __setitem__(self, key, value):
# 判断越界
if key > self.__size - 1:
raise Exception('错误:数组越界')
self.__items[key] = value
def __iter__(self):
for item in self.__items:
yield item
def __len__(self):
return self.__size
def clear(self, value = None):
self.__items = [value for i in range(self.__size)]
return
if __name__ == '__main__':
a = Array(10)
for i in range(len(a)):
a[i] = i
# 测试赋值时数组越界
try:
temp = a[len(a) + 10]
print('#temp#'+str(temp))
except Exception as err:
print(err)
# 测试赋值时数组为空
a[0] = None
try:
temp = a[0]
print('#temp#'+str(temp))
except Exception as err:
print(err)
# 测试set数组越界
try:
a[len(a) + 10] = 1234
print('#a#', a[len(a) + 10])
except Exception as err:
print(err)
print(list(a))
a.clear(1)
print(list(a))
a.clear()
print(list(a))
数组(自定义) - Python实现
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近项目中有需要应用到高德地图的模块,在参考别的app地图相关模块实现过程中,自己产生了一些想法。首先说明要实现的...