On Sat, 24 Nov 2007 02:54:27 -0800, samwyse wrote: > On Nov 24, 4:07 am, Marc 'BlackJack' Rintsch <[EMAIL PROTECTED]> wrote: >> On Sat, 24 Nov 2007 01:55:38 -0800, samwyse wrote: >> > I've had the same thought, along with another. You see, on of my pet >> > peeves about all OO languages that that when creating new code, I >> > generally begin by writing something like this: >> >> > cat = 'felix' >> > dog = 'rover' >> > def example(): >> > global cat, dog # not always required, but frequently needed >> > return ', '.join((cat, dog)) >> >> Ouch that's bad design IMHO. The need to use ``global`` is a design >> smell, if needed *frequently* it starts to stink. > > I'm not sure what you mean. In the example that I gave, the 'global' > statement isn't needed. However, here's a different example:
I mean that global names that are (re)bound from within functions couple these functions in a non-obvious way and make the code and data flow harder to follow and understand. Also it makes refactoring and testing more difficult because of the dependencies. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list