gpt4 book ai didi

python - 使用列表处理 IndexError 异常

转载 作者:行者123 更新时间:2023-11-30 23:01:09 25 4
gpt4 key购买 nike

我目前正在学习 Python,并且我有一个练习,您必须处理异常。这个的目标是当给定键的值不在列表“self.data”的范围内时抛出异常。

这是我应该在函数中输入的内容来测试它:

v = Vecteur(-9, -6, 2, 3, -2)
v[-1]

现在我应该得到一个IndexError

class Vecteur:
def __init__(self, *valeurs):
self.data = list(valeurs)

def __getitem__(self,key):

try:
erreur = self.data[key]
except IndexError:
print('indice invalide pour ce vecteur')

return self.data[key]

def __setitem__(self,key,item):
self.data[key] = item

你们中有人能就这个问题给我启发吗?

提前致谢!

最佳答案

您的问题源于这样一个事实:您捕获了 IndexError,然后打印,并让执行失败。

我会这样做:

class Vecteur:
def __init__(self, *valeurs):
self.data = list(valeurs)

def __getitem__(self,key):

try:
return self.data[key]
except IndexError:
raise IndexError('indice invalide pour ce vecteur')

def __setitem__(self,key,item):
self.data[key] = item

顺便说一下,-1 是一个有效的索引。因此,您可能需要更改您的 __getitem__:

def __getitem__(self, key):
if key < 0:
raise ValueError("Index has to be greater than 0")
# the rest of your __getitem__ here

关于python - 使用列表处理 IndexError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34998973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com