Can't do a multiline assignment!

Gary Herron gherron at islandtraining.com
Thu Apr 17 18:44:51 CEST 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