Tim Chase wrote: >> Maybe I'm missing something obvious here >> >> def A (...): >> #set a bunch of variables >> x = 1 >> b = 2 >> ... >> >> Do something with them >> >> def B (...): >> #set the same bunch of variables >> x = 1 >> b = 2 >> ... >> >> Do something with them >> >> I want to apply DRY, and extract out the common setting of these >> variables into the local scope of the functions A and B. How to do >> this? (Other than just setting them in the module scope) > > As Diez suggests, if you don't want to litter your global namespace, use > a class: > > class Foo: > x = 1 > b = 2 > @classmethod > def A(cls, *args, **kwargs): > do_stuff_with(Foo.x, Foo.b, args, kwargs) > @classmethod > def B(cls,*args, **kwargs): > do_other_stuff_with(Foo.x, Foo.b, args, kwargs) > > Foo.A(3, 1, 4) > Foo.B("Hello", recipient="world") > That's not what classes are really for, though ...
If x and b are meant to be global than bite the bullet and *make* them global. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ Want to know? Come to PyCon - soon! http://us.pycon.org/ -- http://mail.python.org/mailman/listinfo/python-list