[Python-Dev] Enum Eccentricities (original) (raw)

Zero Piraeus z at etiol.net
Mon Sep 23 17:17:35 CEST 2013


On Mon, Sep 23, 2013 at 09:45:46AM -0400, Chris Lambacher wrote:

[...] The exact use case is in Django templates where a value comes from the database. If you want to compare you either have to use class which I would say is a code smell, or you have to provide the Enum class.

I'm having a hard time seeing why the latter is problematic, I must admit (certainly no more so than the "Alice in Wonderland" side effects previously described).

[...] An example of how this will be used in practice is:

{% if object.state == object.state.completed %} some html {% endif %}

The names used slightly obscure the weirdness of it, but what you're really saying there is:

if my_state == my_state.another_state

... which feels more like a code smell to me than

 {% if object.state == State.completed %}
   some html
 {% endif %}

That's quite intelligible, and doesn't require anyone to know that an Enum member's siblings can, in your proposal, be accessed directly via dot notation (an unintuitive state of affairs, to me at least).

-[]z.

-- Zero Piraeus: omnia omnibus http://etiol.net/pubkey.asc



More information about the Python-Dev mailing list