Fuzzyman wrote:
On Dec 29 2008, 9:34 am, John Machin <sjmac...@lexicon.net> wrote:
On Dec 29, 5:01 pm, scsoce <scs...@gmail.com> wrote:

I have a function return a reference,
Stop right there. You don't have (and can't have, in Python) a
function which returns a reference that acts like a pointer in C or C+
+. Please tell us what manual, tutorial, book, blog or Usenet posting
gave you that idea, and we'll get the SWAT team sent out straight
away.

and want to assign to the
reference, simply like this:
 >>def f(a)
          return a
That's not a very useful function, even after you fix the syntax error
in the def statement. Would you care to give us a more realistic
example of what you are trying to achieve?

     b = 0
    * f( b ) = 1*
Is the * at the start of the line meant to indicate pointer
dereferencing like in C? If not, what is it? Why is there a * at the
end of the line?

but the last line will be refused as "can't assign to function call".
In my thought , the assignment is very nature,
Natural?? Please tell us why you would want to do that instead of:

    b = 1

 but  why the interpreter
refused to do that ?
Because (the BDFL be praised!) it (was not, is not, will not be) in
the language grammar.

Although not being able to do the following has on occasion annoyed
me:

f(x) += 1

If the object returned by f(x) supports in place operations then it is
an entirely logical meaning, but not the interpreter can't know ahead
of time whether that is the case or not.

+= always rebinds, even for in-place operations, so, in a sense, it's not surprising!

I suppose it's like forbidding assignment within an expression (such as an if- or while-condition): annoying sometimes, but a reasonable restriction.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to