首页 > 解决方案 > python list_iterator 类未定义

问题描述

我正在尝试以下操作:

>>> i = iter([1,2,3])
>>> print(type(i))
<class 'list_iterator'>
>>> print(type(i).mro())
[<class 'list_iterator'>, <class 'object'>]
>>> j = list_iterator()

最后几行给了我一个错误:

Traceback (most recent call last):
  File "/home/pru/ML/stepik/examples module2/iterators.py", line 10, in <module>
    j = list_iterator()
NameError: name 'list_iterator' is not defined

怎么没有定义?解释器不会在“object”命名空间中查找名称“list_iterator”吗?

标签: python

解决方案


“解释器不会在 'object' 命名空间中查找名称 'list_iterator' 吗?” 这不是它的工作原理。object是一个类,而不是命名空间,并且list_iterator是 的子类object,但这并不意味着我们必须可以访问它。

在大多数情况下,您不需要使用list_iterator,这就是它没有暴露给我们的原因,但如果您真的需要它,您可以通过如下定义来使用它:

list_iterator = type(iter([]))

推荐阅读