gpt4 book ai didi

Python自定义类索引

转载 作者:行者123 更新时间:2023-11-28 20:38:04 27 4
gpt4 key购买 nike

是否可以在 python 中创建一个可以用方括号索引但不能派生自不同索引类型的类?

我有兴趣制作一个带有可选索引的类,它的行为如下:

class indexed_array():
def __init__(self, values):
self.values = values

def __sqb__(self, indices): #This is a made up thing that would convert square brackets to a function
if len(indices) == 2:
return self.values[indices[0]][indices[1]]
elif len(indices) == 1:
return self.values[indices[0]][0]

myarray = indexed_array([[1,2,3], [4,5,6], [7,8,9]])
print myarray[1, 1] # returns 5
print myarray[1] # returns 4

有没有像我的__sqb__这样的真正的方法?或者,您可以通过其他方式为自定义类编制索引吗?

最佳答案

您需要实现__getitem__。请注意,单个索引将作为自身传递,而多个索引将作为元组传递

通常您可能会选择以下列方式处理此问题:

class indexed_array:
def __getitem__(self, indices):
# convert a simple index x[y] to a tuple for consistency
if not isinstance(indices, tuple):
indices = tuple(indices)

# now handle the different dimensional cases
...

关于Python自定义类索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686020/

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