Fwd: [Tutor] redundant function ( or,
I need advice about cleaning up my code )
Max Noel
maxnoel_fr at yahoo.fr
Sun Oct 31 01:58:56 CEST 2004
(argh, clicked "reply" again. I *will* get used to this one day, I
swear)
Begin forwarded message:
> From: Max Noel <maxnoel_fr at yahoo.fr>
> Date: October 31, 2004 00:49:56 BST
> To: Morgan Meader <morgan at insightmill.com>
> Subject: Re: [Tutor] redundant function ( or, I need advice about
> cleaning up my code )
>
>
> On Oct 13, 2004, at 20:40, Morgan Meader wrote:
>
>> if job.matrix.info['gROWtype'][i] == 'power_ground' or \
>> job.matrix.info['gROWtype'][i] == 'mixed' or \
>> job.matrix.info['gROWtype'][i] == 'signal':
>
> This test can be shortened somewhat by using the in operator.
>
> if job.matrix.info['gRowType][i] in ('power_ground', 'mixed',
> 'signal'):
> # do stuff
>
>> layers.sort()
>
> Mmh... I don't see an initialization for this variable... Is it a
> global variable? If so, it's a Bad Thing.
>
>> if layerTypes[i] != 'signal':
>> if layerPols == 'positive':
>> step.affect(layerNames[i])
>
> You can do that with a single test.
>
> if layerTypes[i] != 'signal' and layerPols == 'positive':
> step.affect(layerNames[i])
>
> If the first part of the test evaluates to False, the second part
> won't be evaluated, as there is no need to (we already know the
> boolean expression is false).
>
>
>
>
> Also, there are a few things that I think could be improved in your
> general coding style:
> - Use functions. Lots of them. This single function you submitted to
> us is huge. It could probably be broken up into at least 5 parts.
> - You're almost only using C-style for loops. It works, but you should
> try to use more foreach-style for loops. Instead of doing:
> for i in range(len(a)):
> # do something with a[i]
> You should use:
> for element in a:
> # do something with element
> It's faster, more elegant and usually more efficient. Have a look at
> list comprehensions, too, they're very useful.
> - I'm not absolutely sure, but it seems that some of the functions
> you're using are modifying their arguments instead of returning
> values. That's not a good idea, especially since Python can return
> arrays, dictionaries or tuples.
>
> HTH,
>
> -- Wild_Cat
> maxnoel_fr at yahoo dot fr -- ICQ #85274019
> "Look at you hacker... A pathetic creature of meat and bone, panting
> and sweating as you run through my corridors... How can you challenge
> a perfect, immortal machine?"
>
>
--
maxnoel_fr at yahoo dot fr -- ICQ #85274019
"Look at you hacker... A pathetic creature of meat and bone, panting
and sweating as you run through my corridors... How can you challenge a
perfect, immortal machine?"
More information about the Tutor
mailing list