What do I need to change to make this work?
class A:
@staticmethod
def __getitem__(val):
return "It works"
print A[0]
Note that I am calling the __getitem__ method on the type A.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
When an object is indexed, the special method
__getitem__is looked for first in the object’s class. A class itself is an object, and the class of a class is usuallytype. So to override__getitem__for a class, you can redefine its metaclass (to make it a subclass oftype):In Python3 the metaclass is specified this way: