you can use the dictionary returned by the built in function vars, along the lines of
>>> vars()["foo"] = lambda x: 3*x >>> foo(2) 6 but polluting your name space with data counts as bad style and will probably bite you at some point -- you probably are better of putting closures in a dictionary: >>> def mkdict(address): def something(): return {'Address': address, 'Control': "SOME_CONST"} return something >>> mk = {} >>> mk["n1"] = mkdict("n1") >>> mk["n1"]() {'Control': 'SOME_CONST', 'Address': 'n1'} Steven W. Orr wrote: > Given a list of names > > ll = ("n1", "n2", "n3", "n4") > > I want to create a pair of functions based off of each name. An example > of what I want to happen would look like this: > > def mkn1dict(address): > return {'Address': address, 'Control': SOME_CONST} > > def mkn1Classobj(address): > return Classobj( mkn1classobj(address) ) > > I know how to do this in a preprocessor, but I'd like to do it directly > in python. Can this be done? > > TIA > > -- http://mail.python.org/mailman/listinfo/python-list