2017-02-13 18 views
0

もう1つの関数を呼び出すのは難しいですか?私は2つの機能を持ち、一方が他方の結果に依存:"and"を使用して2つの関数を呼び出す

function1() # if something goes wrong, will raise a error, if not, will return None 
function2() 

そして、私は使用して考えていた:

function1() is None and function2() 

はこの神託のですか?

+1

結果には依存しますか?あなたは戻って何も渡さない、副作用はありますか?もしそうなら、それ自体はあまりpythonicではありません。 – jonrsharpe

+1

'function1'の中で' function2'をなぜ呼び出さないのですか? – WhatsThePoint

+0

私は最初にクエリ(function1)を実行する必要があるモジュールを使用しています。次に、fetchone(function2)を呼び出してクエリの結果(function1)を収集します。したがって、2番目の関数は最初の関数の結果に依存しますが、結果はモジュールの内部にあり、最初の関数は何も返しません。 –

答えて

1

Noneの戻り値は成功を示すものとして考えるべきではなく、の不在の例外です。それは、明示的なあなたは、例外の可能性を認識しているが、意図的に1を高くする必要があり、それは、コールチェーンを渡すせていることを確認するためにtryステートメントを使用します。

try: 
    function1() 
else: 
    function2() 

したい場合は、あなたが明示的に指定できます。

try: 
    function1() 
except Exception: 
    raise 
else: 
    function2() 
+0

問題は、私はこの他のモジュールの上にモジュールを作成しているので、例外を処理する方法をモジュールのユーザーに決定させると思います@chepner –

+1

次に何もする必要はありません。 2つの関数を順番に呼び出します。最初の呼び出しがキャッチされない例外を発生させない場合にのみ、2番目の呼び出しに到達します。戻り値は本当に意味がありません。 – chepner

0

私はあなたが2を使用する必要があります代わりに、2つの独立した機能

MyFunction() 
try: 
    <your first action goes here> 
except: 
    <what you want to happen if an error occurs go here> 

try....exceptテストを使用するように誘惑されるだろうステートメント、Noneリターンの場合は1つ、他の場合は1つ。ドキュメントには多くの有益な情報があります:https://wiki.python.org/moin/HandlingExceptions

関連する問題