请考虑以下情况:
flag = 'a'
while True:
try:
# something that might fail
except:
# fix failure
flag = 'b'
else:
break
print(flag)
我觉得在这种情况下,一定要有一种更好的方法来找出发生的事情而不使用标志,但是无法想到更“ pythonic”的东西。
最佳答案
您可以将对异常/默认情况的处理拉到except
和else
块中。但是,这是不同的代码,因为现在退出while
循环后,您将在每个异常上打印而不是仅打印一次,因此对于外面的try
/ except
/ else
来说更有意义循环。如果您在循环内,但仍然只希望在循环完成后打印一次(即一次没有引发异常),那么我认为您的方法足够清晰。
while True:
try:
# something that might fail
except:
# fix failure
print("b")
else:
print("a")
break
关于python - Python的“标志”概念方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56716412/