Python 代码成功后如何退出try循环?
我下面的代码试图执行函数x,但由于x需要时间来构建,我需要在构建之前一直休眠,然后调用它。所以我通常需要300秒来建造。当我运行下面的代码时,它将在try循环中循环大约3次,但每次通过Python 代码成功后如何退出try循环?,python,for-loop,try-catch,Python,For Loop,Try Catch,我下面的代码试图执行函数x,但由于x需要时间来构建,我需要在构建之前一直休眠,然后调用它。所以我通常需要300秒来建造。当我运行下面的代码时,它将在try循环中循环大约3次,但每次通过时都会打印0,除了代码 将打印x(当代码成功而我中断时)放在下面的for循环之外或其他地方是否正确?另外,如何使i打印它正在尝试的时间,而不是0 for i in range(0,10): while True: try: x = my
时都会打印0
,除了
代码
将打印x
(当代码成功而我中断时)放在下面的for循环之外或其他地方是否正确?另外,如何使i
打印它正在尝试的时间,而不是0
for i in range(0,10):
while True:
try:
x = my_get_fuction
except:
print "error"
print i
time.sleep(100)
continue
break
print x
您的
while
循环似乎与您的设计无关。试试这个:
for i in range(0,10):
try:
x = my_get_fuction
except:
print "error"
print i
time.sleep(100)
continue
break
print x
此代码最多循环10次,每次睡眠100秒。如果分配的
x=my_get_函数在1000秒左右没有完成,那么循环就放弃了。这应该是可行的,但我认为这种方法存在严重缺陷。您是否考虑过使用异步模型而不是循环try/except?您能举个例子吗?您希望它打印什么?continue将继续while循环并跳过中断,因此在点击break语句之前只打印0
。@jxn,如果没有更多信息,很难给出如何异步执行此操作的示例。我的_get_函数到底在做什么?不要使用for循环,设置i=0
,并在每次命中except块时递增i+=1