假设我的代码看起来像这样:
def lab():
letter = prompt()
def experiment_1():
if letter == 1:
print("check")
#Would there be a way to quit the lab function right here?
def experiment_2():
if letter == 1:
print("check2")
experiment_1()
experiment_2()
lab()
打印“检查”后,我是否可以立即退出实验室功能?我尝试在experiment_1
的末尾添加return,但这似乎正好适用于experiment_2
的下一个函数。
答案 0 :(得分:2)
最明显的方法是提出异常。它可以让你从任何深度出去。定义一个自定义异常并在某个外层捕获它。例如:
class MyError(Exception):
pass
def _lab():
letter = prompt()
def experiment_1():
if letter == 1:
print("check")
raise MyError
def experiment_2():
if letter == 1:
print("check2")
experiment_1()
experiment_2()
def lab():
try:
return _lab()
except MyError:
return
lab()
这个特殊的例子有点难看,但你应该明白这个想法。
答案 1 :(得分:0)
如评论部分所述,您可以将标志传递给外部函数
def lab():
letter = prompt()
def experiment_1():
if letter == 1:
print("check")
return True
return False
def experiment_2():
if letter == 1:
print("check2")
if experiment_1():
return
experiment_2()
lab()
但是你应该改进你的问题,因为听起来你正试图解决另一个问题。请参阅:http://mywiki.wooledge.org/XyProblem
答案 2 :(得分:-1)
您可以将return
语句放在要运行的位置。在你可以返回任何其他瘦身return var1 var2
def lab():
letter = prompt()
def experiment_1():
if letter == 1:
print("check")
# Would there be a way to quit the lab function right here?
# you have to put return just here
return
def experiment_2():
if letter == 1:
print("check2")
experiment_1()
experiment_2()
lab()