[Python-3000] in-out parameters

Marcin 'Qrczak' Kowalczyk qrczak at knm.org.pl
Sun Apr 30 11:01:59 CEST 2006


"Rudy Rudolph" <rudyrudolph at excite.com> writes:

>     def f(inout param):
>         param += 5
>         return "this is my result"
>
>     # call it
>     x = 2
>     result = f(x)
>     # x is now 7

In a dynamically typed language it's not going to work unless both
the parameter in the function definition and the actual argument are
marked. Then it's easy, well-defined, and can even support other
"lvalues", e.g.:

def f(ref x):
   x += 1
f(ref a[g()])
# g() is executed once
# reading x does __getitem__
# setting x does __setitem__

I'm not judging whether it's worth having, only how it should work if
supported.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak at knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/


More information about the Python-3000 mailing list