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行が検出されると停止し、を除くの下のコードブロックに移動します。

例外処理の詳細については、ドキュメントをご覧ください。

例外処理を処理したくない場合は、関数を正常に停止して、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 に答える