【发布时间】:2020-12-28 05:43:34
【问题描述】:
我正在构建一个类并希望使以下“numpy like”语法工作:
#simple example
class MyClass():
def __init__(self):
self.arr = [1,2,3,4]
def __getitem__(self, index):
return self.arr[index]
def print_next(self,index):
print(self.arr(index+1))
def print_previous(self,index):
print(self.arr(index-1))
a = MyClass()
a.arr[2].print_next() #4
a.arr[2].print_previous() #2
__getitem__ 只允许我访问索引而不是之后的方法调用。我正在研究元类以更改 __getitem__,但我不知道如何继续。
【问题讨论】:
-
你能举一个例子来说明你在 numpy 中的尝试吗?
-
接下来的方法调用是类
MyClass的方法。如果您的目标是然后调用一个方法liket hat,__getitem__将需要返回self。 -
嗨!欢迎来到 SO!请记住在您的问题中添加尽可能多的信息,由于类型错误,您提供的代码将无法运行,这些错误未作为您问题的一部分进行描述。此外,最好解释一下您要实现的目标,并在可能的情况下展示一个示例(也许使用 NumPy 作为参考?)。提前致谢!
标签: python-3.x metaclass