没有__iter__的序列?

Sequence with no __iter__?

提问人:lilson 提问时间:2/4/2023 最后编辑:pholilson 更新时间:2/4/2023 访问量:34

问:

Python 3 中是否有任何内置类型可以实现但不实现该方法?__getitem____iter__

我认为在 Python 2 中,类型是这种情况,但现在在 Python 3 中,str 类型有一个方法。str__iter__

python-3.x 序列 可迭代

评论

0赞 gog 2/4/2023
在 python 3.9 中,在 3.10 中没有。memoryview

答:

0赞 Barmar 2/4/2023 #1

MemoryView 似乎是唯一的:

>>> import builtins
>>> [b for b in dir(builtins) 
     if isinstance(t := getattr(builtins, b), type) 
        and hasattr(t, '__getitem__') 
        and not hasattr(t, '__iter__')]
['memoryview']

可能有一些默认未加载的标准模块具有如下类型。