第一次来这里。
我目前正在与一项任务达成一致。
我正在编写一个功能来检查注释,但是当我比较值时,我遇到了问题。
所以对于前。我正在使用
def check_type():
try:
if isinstance(value, annot):
pass
else:
raise AssertionError(str(param) + ' failed annotation check(wrong type): value = '+
str(value)+ ' was type ' + str(type(value).__name__)+
' ...should be type '+ str(annot.__name__))
except:
print('well')
raise AssertionError(str(param) + ' failed annotation check(wrong type): value = '+
str(value)+ ' was type ' + str(type(value).__name__)+
' ...should be type '+ str(annot.__name__))
目前,如果isinstance(value,annot)产生True,则一切正常。 但是,如果没有:我得到一个令人讨厌的OSError。 它没有进入else块,只是给了我OSError。
即使使用try / except块,它也无法正确处理。它会去它并打印"以及#34;但它不会引发AssertionError。除了引发AssertionError之外,它会执行所有操作,并且无论如何都会给我一个OSError。
我认为提出AssertionError存在一些问题,但是当我尝试手动打印出该消息时,它可以正常工作。就在我尝试引发AssertionError时,我不断得到OSError。
任何人都能解释一下吗?