2

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

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


Mydef(2,1)
4

2 回答 2

2

这就是创建异常的目的。您提出异常的方案总体上是好的;你只需要添加一些代码来捕获它并处理它

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
于 2012-08-10T11:03:02.110 回答
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)

于 2012-08-10T11:04:31.230 回答