Torsten Mohr schrieb:
i'd like to pass a reference or a pointer to an object
to a function. The function should then change the
object and the changes should be visible in the calling
function.
[..]
is something like this possible in python?
Yes, wrap it in a container, e.g. a list or an object.
Change the containers content in the called function.
The keyword "global" does NOT fit this purpose to
my understanding as it only makes the variables of
the UPPERMOST level visible, not the ones of ONE
calling level above.
There are three namespaces in python, sorted according to
priority:
- local
variables of the current scope (function or method),
highest priority, show with locals()
- global
variables of the containing module, show with globals()
- builtin
builtin variables, show with __builtins__.__dict__
Since Python 2.1 the local namespace can be nested e.g. if
a function is defined inside a function. Example:
>>> def fo(u):
... def fi(v):
... v2 = 2*v
... print locals()
... return v2
... u2 = fi(u)
... print locals()
... return u2
...
>>> fo(4)
{'v2': 8, 'v': 4} <-- inner local namespace
{'fi': <function fi at 0x011AEBB0>, 'u': 4, 'u2': 8} <-- outer local namespace
8
--
-------------------------------------------------------------------
Peter Maas, M+R Infosysteme, D-52070 Aachen, Tel +49-241-93878-0
E-mail 'cGV0ZXIubWFhc0BtcGx1c3IuZGU=\n'.decode('base64')
-------------------------------------------------------------------
--
http://mail.python.org/mailman/listinfo/python-list