Python第13讲元组课后习题生成器
>>> x = (i*i for i in range (10))>>> type(x)
<class 'generator'>
>>> x._next_()
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
x._next_()
AttributeError: 'generator' object has no attribute '_next_'
为什么>>> x._next_()会报错
>>> tuple1 = (x**2 for x in range(10))
>>> tuple1.__next__()
0
这个怎么就不报错
本帖最后由 Twilight6 于 2020-6-29 10:54 编辑
第一个你使用成了 _next_ 你打成了单下划线
而对第二个使用 __next__ 你打的是双下划线
双下划线是正确用法,单下划线错误用法
而且 next 函数的用法是 next(x) 而不是 x.next()
第一个下划线少打了{:10_250:}粗心...
i*i 与 i**2 都是2次方,可以把第一个重新打一遍,下划线多输一个。
我的类和对象,魔法方法没选好,得补补了...{:10_277:}
页:
[1]