On Mon, 14 Mar 2005 23:44:46 -0700, Steven Bethard <[EMAIL PROTECTED]> wrote:
>Ron Garret wrote: >> What I'm really trying to do is to create enumerated types such that if: >> >> e1 = enum(lst) and v = e1(x) >> >> then >> >> (x in lst) and (e1[v] == x) > >Use a class with __call__ and __getitem__: > >py> class enum(object): >... def __init__(self, vals): >... self.vals = vals >... def __call__(self, val): >... return self.vals.index(val) >... def __getitem__(self, index): >... return self.vals[index] >... >py> lst = 'abcd' >py> x = 'b' >py> e1 = enum(lst) >py> v = e1(x) >py> (x in lst) and (e1[v] == x) >True For that, why not just class enum(list): def __call__(self, val): return self.index(val) Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list