from error import * class Memory: def __init__(self, size): self.data = [0] * size self.size = size self.name = "内存" def init(self): print("重置" + self.name) self.data = [0] * self.size def __getitem__(self, key: int): print("读取位于", key, "的" + self.name) if key > self.size: raise AddressError return self.data[key] def write(self, index: int, val: int): if index > self.size: raise AddressError() self.data[index] = val def __len__(self): return self.size def __str__(self): return str(self.data) def __setitem__(self, k, v): print("写入位于", k, "的" + self.name) if isinstance(k, slice): if not k.start: start = 0 else: start = k.start if not k.stop: stop = self.size - 1 else: stop = k.stop if start > self.size or stop > self.size: raise AddressError self.data[start:stop] = v return if k > self.size: raise AddressError self.data[k] = v return