是否可以在方法中使用getitem,即
Class MyClass:
@property
def function(self):
def __getitem__():
...
Run Code Online (Sandbox Code Playgroud)
所以我可以做
A = MyClass()
A.function[5]
A.function[-1]
Run Code Online (Sandbox Code Playgroud)
在Python中,一切都是一流的对象,所以这个想法应该可行(语法已关闭),尽管我建议使用function其中的属性创建自己的类,然后在MyClass中使用它,除非你有很好的数据-隐藏不这样做的理由...
我想指出的是,我假设您想要function返回一个可订阅的东西,而不是一个可订阅的函数列表。这是一个不同的实现(不过也可以完成。)
例如,一个可下标的东西(你也可以只制作一个list):
# python
> class FooFunc(list):
> pass
> class Foo:
> foofunc = FooFunc()
> f = Foo()
> f.foofunc.append("bar")
> f.foofunc[0]
'bar'
Run Code Online (Sandbox Code Playgroud)