Reputation: 5509
I am learning python and this is from
http://www.learnpython.org/page/MultipleFunctionArguments
They have an example code that does not work- I am wondering if it is just a typo or if it should not work at all.
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 thinks the output should have been-
The sum is: 6
Result: 1
The error i get is-
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
Is there a way to do what they are trying to do or is the example wrong? Sorry I did look at the python tutorial someone had answered but I don't understand how to fix this.
Upvotes: 1
Views: 261
Reputation: 6661
You probably should not use "return
" as an argument name, because it's a Python command.
Upvotes: 1
Reputation: 12174
return
is a keyword in python - you can't use it as a variable name. If you change it to something else (eg ret
) it will work fine.
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
Upvotes: 7