擅长:python、mysql、java
<p>你在用哪一个?{3.3.3和你的测试代码</p>
<pre><code>>>> EnzymeNames['ENZYME_X']
x
</code></pre>
<p>换句话说:使用内置的<code>Enum</code>或<code>enum34</code>后端口,您的代码可以正常工作。在</p>
<hr/>
<p>编写枚举的更好方法是将<code>Properties</code>集成到其中:</p>
^{pr2}$
<p>使用中:</p>
<pre><code>>>> print(EnzymeNames.X)
X
>>> print(EnzymeNames.X.name)
X
>>> print(EnzymeNames.X.v)
0.2
>>> print(EnzymeNames.X.k)
50
>>> print(EnzymeNames['X'])
X
</code></pre>
<hr/>
<p>编写<code>enums</code>的一些一般提示:</p>
<ul>
<li>保持名称单数;<code>EnzymeName</code>而不是<code>EnzymeNames</code></li>
<li>不要在枚举成员中重复枚举名称:<code>X</code>而不是<code>ENZYME_X</code></li>
<li>如果您正在使用<code>Enum</code>做一些花哨的事情,可以考虑使用<a href="https://pypi.python.org/pypi/aenum" rel="nofollow noreferrer">^{<cd12>}</a>(由与<code>Enum</code>和{<cd2>}同一作者编写)</li>
</ul>
<p>使用<code>aenum</code>,您的代码可能看起来像:</p>
<pre><code>from aenum import Enum
class EnzymeName(Enum, init='v k'):
X = 0.2, 50
Y = 1.5, 100
def __str__(self):
return self.name
</code></pre>