On 04/25/2013 09:34 AM, Eli Bendersky wrote: > > > > On Thu, Apr 25, 2013 at 8:46 AM, Ethan Furman <ethan at stoneleaf.us <mailto:ethan at stoneleaf.us>> wrote: > > On 04/25/2013 06:03 AM, Eli Bendersky wrote: > > > The __call__ syntax has been repurposed for the convenience API: > > --> Animals = Enum('Animals', 'ant bee cat dog') > --> Animals > > <Animals {ant: 1, bee: 2, cat: 3, dog: 4}> > --> Animals.ant > <EnumValue: Animals.ant [value=1]> > --> Animals.ant.value > > 1 > > The aforementioned deprecated syntax refers to __call__ with a single arguments (the convenience API by definition > requires more than one). > > > I don't understand why having Enum() be the convenience function rules out `Animals(1)` from returning `Animals.ant`. > > > Because we already have a way to do that: Animals[1]. Why do you need two slightly different ways to do the same? > Moreover, why do you want to make Animals.__call__ behave very differently based only on the number of args? This seems > to be un-pythonic in multiple ways. I think we're talking past each other (or I'm not awake yet ;). Animals is a class. Giving Animals a parameter (such as 1 or 'ant') should return the instance that matches. This is how classes work. I don't understand your assertion that there is another way to call Animals... do you mean something like: --> MoreAnimals = Animals('MoreAnimals', 'bird worm insect') ? -- ~Ethan~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4