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