我想知道在Python定义中检查条件的最佳方法是什么,并且如果不满足条件,则阻止它进一步执行。现在我遵循下面提到的方案,但它实际上打印整个跟踪堆栈。我希望它只打印一条错误消息,不执行其余的代码。是否还有其他更清洁的解决方案。
def Mydef(n1,n2):
if (n1>n2):
raise ValueError("Arg1 should be less than Arg2)
# Some Code
Mydef(2,1)
答案 0 :(得分:2)
这就是为什么创建例外。你提出例外的计划总的来说是好的;你只需要添加一些代码来捕获并处理它
try:
Mydef(2,1)
except ValueError, e:
# Do some stuff when exception is raised, e.message will contain your message
在这种情况下,Mydef的执行在遇到引发的ValueError代码行时停止,并转到下的代码块,除外。
您可以在documentation中了解有关例外处理的更多信息。
如果您不想处理异常处理,可以使用 return 语句优雅地停止函数以执行更多代码。
def Mydef(n1,n2):
if (n1>n2):
return
答案 1 :(得分:0)
def Mydef(n1,n2):
if (n1>n2):
print "Arg1 should be less than Arg2"
return None
# Some Code
Mydef(2,1)
函数在到达return
语句时停止执行,或者它们运行直到定义结束。你应该阅读一般的flow control
(不是专门针对python)