迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

修复 python 中 AttributeError: 'generator' Object Has No Attribute 'next'

作者:迹忆客 最近更新:2023/07/05 浏览次数:

属性是与对象或类相关的值。 当您调用该方法不支持其类型的对象的属性时,Python 中会引发 AttributeError

例如,对 int 对象使用 split() 方法会返回 AttributeError,因为 int 对象不支持 split() 方法。

在 Python 3 中,迭代器没有附加 .next 方法。 因此,当您尝试在生成器对象上使用 .next 方法时,您将收到 AttributeError

本篇文章将介绍修复 Python 中的 AttributeError: 'generator' object has no attribute 'next'


修复 Python 中的 AttributeError: 'generator' object has no attribute 'next' 错误

以下是在 Python 3 中使用 Yield 语句时出现 AttributeError 的示例。

def get_data(n):
    for i in range(n):
        yield i
a = get_data(20)
for i in range(10):
    print(a.next())

输出:

Traceback (most recent call last):
  File "c:\Users\rhntm\myscript.py", line 6, in <module>
    print(a.next())
AttributeError: 'generator' object has no attribute 'next'

正如您所看到的,第 6 行中有一个 AttributeError,其中包含代码 print(seq.next())。 这是因为我们使用了 .next 方法从迭代器中获取下一项。

Python 3 中的 .next 方法被内置函数 next() 取代。您可以使用 next 函数修复此错误,如下所示。

def get_data(n):
    for i in range(n):
        yield i
a = get_data(20)
for i in range(10):
    print(next(a))

输出:

0
1
2
3
4
5
6
7
8
9

在 Python 2 中,您可以使用 .next 方法,但 Python 3 会抛出异常 AttributeError

现在您知道如何解决 Python 中的 AttributeError: 'generator' object has no attribute 'next' 错误。 我们希望此解决方案对您有所帮助。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中错误 File&lt;Stdin&gt;, Line 1, in &lt;Module&gt;

发布时间:2023/07/05 浏览次数:134 分类:Python

在本文中,我们将讨论人们面临的最常见的语法错误,即文件“”,第 1 行, 错误。 让我们看看为什么会出现这个错误以及如何在 Python 中解决它。Python 错误 File<Stdin>, Line 1, in <Module&

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便