gpt4 book ai didi

python - 问答: Defining __getitem__ method or assigning __getitem__ in classes

转载 作者:行者123 更新时间:2023-12-01 01:06:42 27 4
gpt4 key购买 nike

__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_sequence 是一个类变量并且将在类之间保留自身。此外,重新定义 _internal_sequence = [...] 似乎会删除 __getitem__ 并导致 IndexError

B)这看起来不像 A)那么好,并且对于内置类型,它会更慢 - 请参阅 here .

因此,A 是将类的 __getitem__ 映射到内部序列的推荐方法。

关于python - 问答: Defining __getitem__ method or assigning __getitem__ in classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277809/

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