cts.private.ya...@gmail.com wrote: > As for python 3 ... "nonlocal"? I see I'm not alone in picking obnoxious > names ...
tous chez... > Alas, one reason it's a weak workaround is that it doesn't work - at > least, not how I wish it would: > $ cat ptrs > > x = 34 > > def p1 (a1): > > a1[0] += 12 > > p1 ([x]) > > print (x) > > $ python ptrs > 34 That doesn't work with 'nonlocal' either. You can compare Python's names with (automatically dereferenced and garbage-collected) pointers, but there is no way to have a name refer to another name. The C-like f(var *value) { value = ... } is the only way to pass a variable in Python. There is no way to emulate f(var **value) { *value = ... } When this came up a few days ago I linked to http://learntofish.wordpress.com/2012/01/09/call-by-object-reference-call-by-sharing/ but I was actually looking for the classic, so there: http://python.net/~mwh/hacks/objectthink.html PS: If you're reading this and love the French language -- I am deeply sorry for the pain I'm causing you... -- http://mail.python.org/mailman/listinfo/python-list