防止执行python定义

时间:2012-08-10 10:59:13

标签: python

我想知道在Python定义中检查条件的最佳方法是什么,并且如果不满足条件,则阻止它进一步执行。现在我遵循下面提到的方案,但它实际上打印整个跟踪堆栈。我希望它只打印一条错误消息,不执行其余的代码。是否还有其他更清洁的解决方案。

def Mydef(n1,n2):
    if (n1>n2):
        raise ValueError("Arg1 should be less than Arg2)
    # Some Code


Mydef(2,1)

2 个答案:

答案 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)