On Sun, 31 Jul 2005 12:44:46 +0200, Paolino wrote: > I show you a piece of code I need to define a function: > > import string > all=string.maketrans('','') > badcars=all.translate(all,string.letters+string.digits) > table=string.maketrans(badcars,'_'*len(badcars)) > def translate(text): > return text.translate(table)
Or do this: def translate(text): import string all=string.maketrans('','') badcars=all.translate(all,string.letters+string.digits) table=string.maketrans(badcars,'_'*len(badcars)) return text.translate(table) No pollution. > What I'm needing as a global (in globals() or at the module level or in > the module namespace) is 'translate'.The rest of bindings (all,badcars > and table) is something which is 'polluting' the module namespace. Then after you are finished with the bindings, delete them: import string all=string.maketrans('','') badcars=all.translate(all,string.letters+string.digits) table=string.maketrans(badcars,'_'*len(badcars)) def translate(text): return text.translate(table) # clean up the temporary variables so as to prevent namespace pollution del string; del all; del badcars; del table -- Steven. -- http://mail.python.org/mailman/listinfo/python-list