擅长:python、mysql、java
<p><code>Enum</code>值应该是(理想情况下是不透明的)整数,因此您的使用不符合预期。例如,如果创建正确,<code>Planet(3)</code>确实有效:</p>
<pre class="lang-py prettyprint-override"><code>from enum import Enum
class Planet(Enum):
MERCURY = 1
VENUS = 2
EARTH = 3
MARS = 4
class Planets:
def __init__(self):
ordered_masses = 3.303e23, 4.869e24, 5.976e24, 6.421e23
self._data = dict((Planet(i),m) for i,m in enumerate(ordered_masses,1))
def mass(self,planet):
return _data[planet]
def display(self):
for k,v in self._data.items():
print(k,v)
print(Planet(3))
Planets().display()
</code></pre>
<p>输出:</p>
<pre class="lang-none prettyprint-override"><code>Planet.EARTH
Planet.MERCURY 3.303e+23
Planet.VENUS 4.869e+24
Planet.EARTH 5.976e+24
Planet.MARS 6.421e+23
</code></pre>