George Sakkis wrote:
"Ron" <[EMAIL PROTECTED]> wrote:

On Tue, 22 Mar 2005 21:56:57 GMT, Ron <[EMAIL PROTECTED]> wrote:


Why should a function not create a local varable of an argument if the
varable doesn't exist and a default value is given?

ok... thought it out better. :)

Getting a default into a function isn't the problem. Returning the
value to a varable that doesn't exist is.

So then the question is ... is there a way for a function to create a
varable in it's parents namespace that persists after the function is
done?


Yeap.. a simple one-liner can do the trick:

def makeVars(**nameVals):
    sys._getframe(1).f_locals.update(nameVals)

try: b
except NameError: print "Before makeVars: NameError"
else: print "Before makeVars: Not NameError"
makeVars(b=2)
try: b
except NameError: print "After makeVars: NameError"
else: print "After makeVars: Not NameError"


Interesting. I'll keep a copy of this one in my cookbook for further exploration. But I think I would use such a thing in production code.


>>> b = 25
>>> makeVars(b=88)
>>> b
88


--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])"
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to