擅长:python、mysql、java
<p>当您调用<code>x[test]</code>时,解释器检查<code>type(x)</code>属性的<code>__getitem__</code>。在<code>Class[test]</code>的情况下,它是<code>Class</code>的元类,即<code>type</code>。如果您想要一个类范围的<code>__getitem__</code>,请在一个新的元类中定义它。(不用说,这是一种魔力,就像你用元类做的任何事情一样)</p>
<pre><code>class Meta(type):
def __getitem__(self, arg):
print "__getitem__:", arg
class X(object):
__metaclass__ = Meta
X['hello'] # output: __getitem__ hello
</code></pre>