the annoying, verbose self
samwyse
samwyse at gmail.com
Sat Nov 24 05:54:27 EST 2007
On Nov 24, 4:07 am, Marc 'BlackJack' Rintsch <bj_... at gmx.net> 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:
>>> top_score = 0
>>> def leaderboard(my_score):
if my_score > top_score:
print "A new high score!"
top_score = myscore
print "Top score:", top_score
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
leaderboard(7, 'samwyse')
File "<pyshell#47>", line 2, in leaderboard
if my_score > top_score:
UnboundLocalError: local variable 'top_score' referenced before
assignment
More information about the Python-list
mailing list