On Fri, 13 Sep 2013 21:59:11 -0700
Ethan Furman <et...@stoneleaf.us> wrote:
> 
> > I mean - given no function to retrieve the canonical key,
> > one would have to resort to:
> >
> > my_key = data.__transform__(given_key)
> > for key, value in data.items():
> >      if data.__transform__(key) == my_key:
> >          ....
> 
> Which is exactly why I, and others, would like to have the transform function 
> easily available.  Besides being able to 
> use it to get a canonical key, one could use it to get the function itself.  
> Yay, introspection!

Well, no, you misunderstand :) The transform function takes an
original key (perhaps "canonical") and returns the transformed key, it
can't do the reverse which is what getitem() does.  i.e.:

>>> d = TransformDict(str.lower)
>>> d['Foo'] = 5
>>> d._transform_func('Foo')
'foo'
>>> d.getitem('foo')
[('Foo', 5)]


What getitem() does is make the surjection bijective by restricting its
input domain to the set of stored keys.

Regards

Antoine.


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to