On Apr 17, 11:46 am, Arnaud Delobelle <[EMAIL PROTECTED]> wrote:
>
> Why not do something like:
>
> class RequestHeadersManager:
>
>     def __init__(self, string):
>         self._fields = {}
>         # Populate self.fields with fields defined in 'string'
>
>     def __getitem__(self, fieldname):
>         return self._fields.get(fieldname, None)
>
> This way you don't need to prebind all possible fields to None, and a
> field is accessible by its actual name, which should be easier to
> remember than an identifier derived from a field name.  Moreover you
> can more easily do some group manipulation of fields (e.g. print them
> all
>
>     def print_fields(self):
>         for name, value in self._fields.iteritems():
>             print "%s: %s" % (name, value)
> )
>

I do it with all the separate variables mainly for performance. If I
had the headers in a dict, I'd be looking up a string in a list of
strings (the keys of the dict) everytime I check for a header. Not
that that's going to take more that 0.1 seconds, but the program is
still small and simple. As it gets bigger, more features are gonna
slow things down.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to