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