如何进行物品访问,即。 {2.}}在Python 2.x中的类对象上可用?
我试过了:
class B:
@classmethod
def __getitem__(cls, key):
raise IndexError
试验:
B[0]
# TypeError: 'classobj' object has no attribute '__getitem__'
print B.__dict__
# { ... '__getitem__': <classmethod object at 0x024F5E70>}
如何让__getitem__
在课堂上工作?
答案 0 :(得分:1)
pointed out作为Martijn Pieters,我们希望在此处为special methods lookup定义元类。
如果你可以使用新式课程(或者不知道那是什么):
class Meta_B(type):
def __getitem__(self, key):
raise IndexError
#
class B(object):
__metaclass__ = Meta_B
#
测试
B[0]
# IndexError, as expected