1

私はPythonを学んでいますが、これは

http://www.learnpython.org/page/MultipleFunctionArguments

それらには機能しないサンプルコードがあります-それが単なるタイプミスなのか、それともまったく機能しないはずなのか疑問に思っています。

def bar(first, second, third, **options):
    if options.get("action") == "sum":
        print "The sum is: %d" % (first + second + third)

    if options.get("return") == "first":
        return first

result = bar(1, 2, 3, action = "sum", return = "first")
print "Result: %d" % result

Learnpythonは、出力は次のようになっているはずだと考えています-

The sum is: 6
Result: 1

私が得るエラーは-

Traceback (most recent call last):
  File "/base/data/home/apps/s~learnpythonjail/1.354953192642593048/main.py", line 99, in post
    exec(cmd, safe_globals)
  File "<string>", line 9
     result = bar(1, 2, 3, action = "sum", return = "first")
                                                ^
 SyntaxError: invalid syntax

彼らがやろうとしていることをする方法はありますか、それとも例は間違っていますか?申し訳ありませんが、誰かが答えたPythonチュートリアルを見ましたが、これを修正する方法がわかりません。

4

2 に答える 2

7

returnPythonのキーワードです-変数名として使用することはできません。他のもの(例ret)に変更すると、正常に動作します。

def bar(first, second, third, **options):
    if options.get("action") == "sum":
        print "The sum is: %d" % (first + second + third)

    if options.get("ret") == "first":
        return first

result = bar(1, 2, 3, action = "sum", ret = "first")
print "Result: %d" % result
于 2012-11-21T08:43:02.800 に答える
1

returnPythonコマンドであるため、引数名として「」を使用しないでください。

于 2012-11-21T08:44:14.317 に答える