2016-12-21 10 views
1

異なるものを返すことができるPythonで関数を作りたいと思います。これを正しく処理するにはどうしたらいいですか?関数がFalseを返すとき、私は、この作品を作るにはどうすればよい関数から異なる戻り値を扱う方法

def function(): 
    #do something, when everything went allright do: 
    return (int, int, int, int) 
    # if something went wrong 
    return False 

x, y, z, a = function() 

:私はこのようなものがありますか?

+9

よりもむしろ 'false'のを返すとあなたのような機能を使用することができます。それで 'try:x、y、z、a = function();と同じくらい簡単です。 SomeError:do_whatever() 'を除いて。 * Python関数から "エラーコード"を返さない*。 – jonrsharpe

+0

関数を設計する途中のステップが必要になります: 'tmp = function(); if tmp:x、y、z、a = tmp'。私はjonrsharpeに同意します。Pythonでエラーを処理する自然な方法は、例外を発生させ、適切な場所でエラーを処理するtry-catchステートメントを使用することです。 – dsh

+0

'x、y、z、a'を関数に間違っていたら何に設定しますか?あなたのユースケースに応じて、4つの '0'、4つの' False'値、または4つの 'None'値などを返すことができます。例えば' return [False] * 4' – elethan

答えて

3

一般的に、機能が面倒なので、これを避けてください。何かがうまくいかなかった場合に例外を発生させます。必要な場合は「error_message」属性を持つカスタム例外、または何かを発生させます。

しかし、あなた * *エラーを発生させ、

result = function() 

if result: 
    x, y, z, a = result 
else: 
    panic() 
+2

それは間違いなく*働くでしょうが、そのコードを見たらすぐに後半に効果があります。「コードを書くときは、あなたが眠っている場所を知っている殺人的な精神病者です。 –

関連する問題