[Python-Dev] [Python-3000] in-out parameters

Edward Loper edloper at gradient.cis.upenn.edu
Sun Apr 30 19:30:07 CEST 2006


Rudy Rudolph wrote:
> 2) pass-by-reference: 
>     def f(wrappedParam):
>         wrappedParam[0] += 5  # ugh
>         return "this is my result"
> 
>     # call it
>     x = 2
>     result = f([x])
>     # also ugly, but x is now 7

This example is broken; here's what you get when you run it:

 >>> def f(wrappedParam):
...     wrappedParam[0] += 5
...     return "this is my result"
...
 >>> # call it
... x = 2
 >>> result = f([x])
 >>> x
2

You probably intended something more like:

 >>> x = [2]
 >>> result = f(x)
 >>> x[0]
7

(As for the actual topic, I'm personally -0 for adding in-out parameters 
to python.)

-Edward


More information about the Python-Dev mailing list