当映射到内部序列类型时,以下哪种方法是推荐的__getitem__
class A:
def __init__(self, ...):
...
self._internal_sequence = []
def __getitem__(self, key):
return self._internal_sequence[key]
class B:
def __init__(self, ...):
...
self._internal_sequence = []
def __getitem__(self, key):
# I'm pretty sure it won't be this one.
return self._internal_sequence.__getitem__(key)
class C:
_internal_sequence = []
__getitem__ = _internal_sequence.__getitem__
我在写问题的时候意识到了我的答案,但我还是会把它贴在这里,这样其他人可以从中受益
C)这似乎工作正常,直到您意识到_internal_序列是一个类变量,并且将在类之间保持自身。此外,重新定义
_internal_sequence = [...]
似乎可以删除__getitem__
并导致IndexError
B)这看起来不像A)那么好,对于内置类型,速度会慢一些-请参见here
因此,建议将类的
__getitem__
映射到内部序列相关问题 更多 >
编程相关推荐