magic tricks
Michele Simionato
mis6 at pitt.edu
Fri Jun 6 14:41:53 EDT 2003
#<change.py>
import sys
callerglobals=sys._getframe(1).f_globals
def a(x):
callerglobals['a']=x
#</change.py>
>>> import change
>>> a=1
>>> change.a(2)
>>> a
2
This works, but the standard library explicitely warns AGAINT this kind
of magic tricks. Thus my question: what's the safe way of doing this
(BTW, what can go wrong with sys._getframe approach) ?
In other words, I want to change a global variable of a given module by
invoking a different module (and I know this is not a Good Thing ;-)
Michele
More information about the Python-list
mailing list