gpt4 book ai didi

python - 如何编写静态 python getitem 方法?

转载 作者:太空狗 更新时间:2023-10-29 17:40:32 26 4
gpt4 key购买 nike

我需要更改什么才能使其正常工作?

class A:
@staticmethod
def __getitem__(val):
return "It works"

print A[0]

请注意,我正在调用 A 类型的 __getitem__ 方法。

最佳答案

当一个对象被索引时,特殊方法 __getitem__ 首先在对象的类中查找。类本身就是一个对象,类的类通常是type。因此,要覆盖类的 __getitem__,您可以重新定义其元类(使其成为 type 的子类):

class MetaA(type):
def __getitem__(cls,val):
return "It works"

class A(object):
__metaclass__=MetaA
pass

print(A[0])
# It works

在 Python3 中,元类是这样指定的:

class A(object, metaclass=MetaA):
pass

关于python - 如何编写静态 python getitem 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com