擅长:python、mysql、java
<p>可以让<code>auto()</code>返回枚举成员的名称作为其值(位于<a href="https://docs.python.org/3/library/enum.html#using-automatic-values" rel="noreferrer">^{<cd2>} section of the docs</a><sup>1中):</p>
<pre><code>>>> class AutoName(Enum):
... def _generate_next_value_(name, start, count, last_values):
... return name
...
>>> class Ordinal(AutoName):
... NORTH = auto()
... SOUTH = auto()
... EAST = auto()
... WEST = auto()
...
>>> list(Ordinal)
[<Ordinal.NORTH: 'NORTH'>, <Ordinal.SOUTH: 'SOUTH'>, <Ordinal.EAST: 'EAST'>, <Ordinal.WEST: 'WEST'>]
</code></pre>
<hr/>
<p><sup>1</sup>这需要Python 3.6版本,或者<code>aenum</code>2.0<sup>2</sup>(<code>aenum</code>与2.7版本的Python一起工作)。</p>
<p><sup>2</sup>披露:我是<a href="https://docs.python.org/3/library/enum.html" rel="noreferrer">Python stdlib ^{<cd5>}</a>、<a href="https://pypi.python.org/pypi/enum34" rel="noreferrer">^{<cd6>} backport</a>和<a href="https://pypi.python.org/pypi/aenum" rel="noreferrer">Advanced Enumeration (^{<cd3>})</a>库的作者。</p>