On Tue, 22 Mar 2005 18:15:25 -0500, "George Sakkis" <[EMAIL PROTECTED]> 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? >> > >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" > >George > Cool! Thanks George, so I can do this: # Set a varable to a default value if it doesn't exist. # Return the same value back if it does. # Use: varable = dfvalue( varable=object) def defvalue(**var): if var.keys()[0] not in sys._getframe(1).f_locals.keys(): return var.values()[0] return sys._getframe(1).f_locals[var.keys()[0]] f = defvalue(f=0) print f # 0 g = 19 g = defvalue(g=0) print g # 19 Would there be any problems with using this function? Not sure where I need it. Was thinking it could be used inside expressions somehow, and it was an iteresting problem. ;) Ron -- http://mail.python.org/mailman/listinfo/python-list