TC wrote: > I have a problem. Here's a simplified version of what I'm doing: > > I have functions a() and b() in a module called 'mod'. b() calls a(). > > So now, I have this program: > > from mod import * > > def a(): > blahblah > > b() > > > The problem being, b() is calling the a() that's in mod, not the new > a() that I want to replace it. (Both a()'s have identical function > headers, in case that matters.) How can I fix this? > > Thanks for any help. >
Since b calls mod.a, you could replace mod.a with your new a. Like this: (Warning, this could be considered bad style because it will confuse anyone who examines the mod module in an attempt to understand you code.) import mod def replacement_a(): ... mod.a = replacement_a ... Or another option. Define b to take, as a parameter, the "a" function to call. In mod: def a(): ... def b(fn=a): # to set the default a to call ... And you main program: from mod import * def my_a(): ... b(my_a) Hope that helps Gary Herron -- http://mail.python.org/mailman/listinfo/python-list