typechecks: just say no! (was Re: Determining Types)
Guido van Rossum
guido at python.org
Sun Sep 9 01:38:50 EDT 2001
ullrich at math.okstate.edu (David C. Ullrich) writes:
> But in other places it's good to be able to refer to
> fields with non-literal names, so I add a __getitem__
> so that rec['thisfield'] returns rec.thisfield.
> (Actually the main reason I want this is so that I
> can use a Rec as a mapping in a string format thing:
>
> 'Your name is %(Name)s' % rec)
>
> In yet other places I want to iterate over the fields
> of a record, as in
>
> for key, value in rec:
>
> So in __getitem__ I check the type of index, returning
> getattr(self, index) if index is a string and saying
>
> fieldname=self.__fieldnames__[index]
> return (fieldname, getattr(self, fieldname))
>
> if index is an integer.
In 2.2, you can define an iterator rather than overloading __getitem__.
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-list
mailing list