Duncan Booth wrote: > Francois De Serres wrote: > >>Having a string: "dothat" >>and a tuple: (x, y) >>1. What's the best way to build a function call like: dothat(x,y)? >> >>Assuming dothat is def'd in the same module, >>2. is: eval("dothat(x,y)", None, (('x', 100), ('y', 200))) >>the right way to have it executed? >> >>If dothat is def'd in another module: >>3. what would be the right way to initialize the globals to pass to >>eval ? > > No, none of this is a good place to use eval. > > aString = "dothat" > atuple = (x, y) > > If aString is the name of a function in the current module: > > globals()[aString](*aTuple) > > If aString is a function in another module: > > import otherModule > vars(otherModule)[aString](*aTuple)
Ick! Please: getattr(otherModule, aString)(*aTuple) -- Robert Kern [EMAIL PROTECTED] "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list