2016-09-04 4 views
0

、私はsum = a, b, c: a + b + cを行うとき、私はエラーを取得していない、しかしfib = lambda a, b: b, a + bPythonのラムダは、私は理解して1つのラインフィボナッチ数列を記述しようとすると、複数の引数が

"'b' is not defined"などの問題を抱えていると変数定義されていないエラーが発生します。 sum(1, 2, 3)は完全に実行され、 6を返します。

グローバル変数を調べたところ、起動前にaとbをNullに設定しても、エラーが出ることはありませんが、これを行う方法がないことがわかりました。

答えて

4

あなたはラムダ本体の前後に括弧を挿入する必要があります。

fib = lambda a, b: (b, a + b) 

そうでない場合、Pythonはそれがこれです考えて:

ちなみに
fib = (lambda a, b: b), a + b 

あなただけのつもりなら、本当の目的はlambdaを使用してありませんその関数を名前に割り当てる。

関連する問題