我想知道在 Python 定义中检查条件的最佳方法是什么,并在条件不满足时阻止它进一步执行。现在我正在遵循下面提到的方案,但它实际上打印了整个跟踪堆栈。我希望它只打印一条错误消息,而不执行其余代码。有没有其他更清洁的解决方案可以做到这一点。
def Mydef(n1,n2):
if (n1>n2):
raise ValueError("Arg1 should be less than Arg2)
# Some Code
Mydef(2,1)
我想知道在 Python 定义中检查条件的最佳方法是什么,并在条件不满足时阻止它进一步执行。现在我正在遵循下面提到的方案,但它实际上打印了整个跟踪堆栈。我希望它只打印一条错误消息,而不执行其余代码。有没有其他更清洁的解决方案可以做到这一点。
def Mydef(n1,n2):
if (n1>n2):
raise ValueError("Arg1 should be less than Arg2)
# Some Code
Mydef(2,1)
这就是创建异常的目的。您提出异常的方案总体上是好的;你只需要添加一些代码来捕获它并处理它
try:
Mydef(2,1)
except ValueError, e:
# Do some stuff when exception is raised, e.message will contain your message
在这种情况下,Mydef 的执行会在遇到 raise ValueError 代码行时停止,并转到except下的代码块。
您可以在文档中阅读有关异常处理的更多信息。
如果您不想处理异常处理,您可以优雅地停止函数以使用return语句执行进一步的代码。
def Mydef(n1,n2):
if (n1>n2):
return
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)