【发布时间】:2021-08-06 22:21:15
【问题描述】:
我有以下工作代码:
while True:
try:
pyautogui.click('a.png')
except pyautogui.ImageNotFoundException:
print('a not found')
continue
try:
pyautogui.click('b.png')
except pyautogui.ImageNotFoundException:
print('b not found')
continue
我希望能够这样做:
def a():
try:
pyautogui.click('a.png')
except pyautogui.ImageNotFoundException:
print('a not found')
continue
def b():
try:
pyautogui.click('b.png')
except pyautogui.ImageNotFoundException:
print('b not found')
continue
while True:
a()
b()
当我将 try-except 块放在函数中时,我不能使用“继续”。我希望它一直运行,直到我在函数内部单击它试图单击的图像。我该如何解决这个问题?
【问题讨论】:
-
您不能以您尝试使用它的方式使用
continue。更好的方法是让a()和b()返回一个值,指示主while循环应该继续或终止。 -
我知道我不能用它,很遗憾我听不懂你在说什么,我对功能不太了解,你能描述得更清楚吗?
-
try/except(不是“预期”)不是循环。你不能使用continue的原因不是因为“它在函数内部”——你绝对可以在函数内部使用continue——而是因为没有循环可以继续。在您显示的工作代码中,不需要continue语句;他们现在所做的只是确保如果找不到a.png,下一次尝试 也将在a.png而不是b.png上(因为循环从顶部重新开始)。 -
看起来你想要做的是有一个函数来控制调用它的代码的行为。它不是那样工作的。调用代码必须决定自己的行为。它可以使用从调用函数中获得的信息,例如,
return值。 -
我试图编辑这个问题,使其更适合作为其他人的搜索目标,因为我认为基本问题很好,并且可以解释一项重要的技术。
标签: python function try-except continue