为对象建立索引后,将
__getitem__首先在该对象的类中查找特殊方法。类本身是一个对象,而一个类的类通常是
type。因此,要覆盖
__getitem__某个类,您可以重新定义其元类(使其成为的子类
type):
class metaA(type): def __getitem__(cls,val): return "It works"class A(object): __metaclass__=metaA passprint(A[0])# It works
在Python3中,元类是通过以下方式指定的:
class A(object, metaclass=metaA): pass



