擅长:python、mysql、java
<p>您不需要新的元类,只需要普通的继承<code>__getitem__</code>仅在使用索引语法时调用</p>
<pre><code>class IndexableEnum(Enum):
def __getitem__(self, key):
return self.value[key]
class Command(IndexableEnum):
SUCCESS = 0, "Exited successfully"
</code></pre>
<p>然后</p>
<pre><code>>>> Command.SUCCESS
<Command.SUCCESS: (0, 'Exited successfully')>
>>> Command.SUCCESS[0]
0
</code></pre>
<p>(当然,从<code>IndexableEnum</code>继承的类应该具有事实上可索引的值,并且<code>__getitem__</code>可以直接在<code>Command</code>类中定义,如果您不打算使多个类可索引。)</p>