Python 3中是否存在实现__getitem__但未实现__iter__的内置类型?
问题解答:Python3中是否存在实现__getitem__但未实现__iter__的内置类型?
在Python3中,不存在这样的内置类型。所有实现了__getitem__方法的内置类型,都同时实现了__iter__方法。
你提到Python2里的str属于这类情况,但Python3对str进行了调整,现在它不仅实现了__getitem__来支持索引访问,也实现了__iter__方法,因此可以直接迭代字符串中的字符。
如果需要验证这一点,可以在Python交互环境中运行以下代码:
import builtins for name in dir(builtins): cls = getattr(builtins, name) if hasattr(cls, '__getitem__') and not hasattr(cls, '__iter__'): print(name)
这段代码会遍历所有内置类型并检查方法匹配情况,运行后不会有任何输出,说明不存在符合条件的内置类型。
内容的提问来源于stack exchange,提问作者lilson
相关产品推荐
相关产品推荐

