我试图在当前屏幕中检测到一张图片。有时它可以找到图片并返回图片的结果位置。但有时它可以在当前屏幕中找到它。在那个时候,它出错了
TypeError: 'NoneType' object is not iterable
因为没有找到结果。我试图通过
找不到结果时抛出try:
a,b,c,d = pyscreeze.locateOnScreen('pic.png')
except AttributeError:
print('no object found on screen')
传递它并继续寻找但遗憾的是,它不起作用。那么,当没有找到图片时,无论如何都要抛出错误TypeError: 'NoneType' object is not iterable
?
答案 0 :(得分:2)
您必须except
引发的错误类型,因此在这种情况下应该是:
try:
a,b,c,d = pyscreeze.locateOnScreen('pic.png')
except TypeError:
# ^
print('no object found on screen')
请注意,except
可以指定错误类型,但这通常不是好习惯。
答案 1 :(得分:1)
根据文档https://pypi.python.org/pypi/PyScreeze/0.1.0,locateOnScreen()
如果找不到任何内容,则会返回None
,因此您可能希望代码类似:
position = pyscreeze.locateOnScreen('pic.png')
if position is None:
print("Not found")
else:
a,b,c,d = position