class MyListLike:
def __init__(self):
self.data = []
def add_element(self, element):
self.data.append(element)
def get_element(self, index, default=None):
if 0 <= index < len(self.data):
return self.data[index]
else:
return default
- 避免索引错误的方法:在
get_element
方法中,通过检查索引 index
是否在有效范围内(即 0 <= index < len(self.data)
),如果在范围内则返回对应元素,否则返回默认值 default
,从而避免了 IndexError
。
- 优点:
- 增强了代码的健壮性:在使用索引取值时,无需使用者显式地进行索引范围检查,降低了因索引越界导致程序崩溃的风险。
- 提供了更灵活的取值方式:可以根据需求传入不同的默认值,适用于多种应用场景。
- 潜在局限性:
- 隐藏错误:可能会掩盖代码中原本存在的索引逻辑错误。例如,如果开发者期望在索引越界时程序报错以发现并修正问题,但这种设计不会抛出错误,可能导致问题难以察觉。
- 增加理解成本:对于不熟悉该类设计的开发者,可能会对获取元素时不抛出
IndexError
感到困惑,需要额外查看文档或代码才能理解其行为。