Can't do a multiline assignment!
Gary Herron
gherron at islandtraining.com
Thu Apr 17 12:44:51 EDT 2008
s0suk3 at gmail.com wrote:
> On Apr 17, 10:54 am, colas.fran... at gmail.com wrote:
>
>> On 17 avr, 17:40, s0s... at gmail.com wrote:
>>
>> Out of sheer curiosity, why do you need thirty (hand-specified and
>> dutifully commented) names to the same constant object if you know
>> there will always be only one object?
>>
>
> I'm building a web server. The many variables are names of header
> fields. One part of the code looks like this (or at least I'd like it
> to):
>
> class RequestHeadersManager:
>
> # General header fields
> Cache_Control = \
> Connection = \
> Date = \
> Pragma = \
> Trailer = \
> Transfer_Encoding = \
> Upgrade = \
> Via = \
> Warning = \
>
> # Request header fields
> Accept = \
> Accept_Charset = \
> Accept_Encoding = \
> Accept_Language = \
> Authorization = \
> ...
>
But. *What's the point* of doing it this way. I see 14 variables
being assigned a value, but I don't see the value, they are getting.
Reading this bit if code provides no useful information unless I'm
willing to scan down the file until I find the end of this mess. And in
that scanning I have to make sure I don't miss the one single line that
does not end in a backslash. (Your ellipsis conveniently left out the
*one* important line needed to understand what this code is doing, but
even if you had included it, I'd have to scan *all* lines to understand
what a single value is being assigned.
There is *no way* you can argue that code is clearer than this:
# General header fields
Cache_Control = None
Connection = None
Date = None
Pragma = None
...
Gary Herron
> Etc etc etc. At the end they'll all be assign to None. Then, when
> initialized, __init__() will the the string of headers, parse them,
> and use those variables shown above to assign to the header values. Of
> course a normal request won't include all of those headers, so the
> others will remain None. That's what I want.
>
More information about the Python-list
mailing list