SyntaxError: can't assign to a function call
Alex Martelli
aleaxit at yahoo.com
Sun Feb 26 19:12:31 EST 2006
Fuzzyman <fuzzyman at gmail.com> wrote:
...
> > Exactly what the error message says: it's syntactically forbidden to
> > perform any assignment on a function-call.
...
> Cool, thanks. That's what I did, it's just not an error I'd seen
> before. Everywhere else Python evaluates the function call and then
> does it's stuff with the result.
Not sure what you mean by 'everywhere else'; generally and syntactically
speaking, you can use a function-call, more or less, in all the places,
and only the places, in which you could use a constant (literal) list
such as [2] -- you can't assign to it, you can't use it as the x in 'for
x in ...', in a clause "except x, y:" you can (syntactically) use it as
x but not as y, etc. Basically, wherever Python needs a rebindable name
or other rebindable reference, you cannot substitute a function call,
nor a constant (literal) list (nor any of several other possible
literals and other expressionforms).
Wherever Python just needs a value, not a rebindable whatever, then of
course you can supply that value in whatever syntax form suits you best,
including a function-call, a literal, and many other ways besides.
Alex
More information about the Python-list
mailing list