今天的文章并不是真正意义上的技术文章,一方面是解释一下之前的文章中某一个知识点带来的困惑,另一个方面是说点心里话。
首先做个自我检讨,在前天的文章中(
零基础学习 Python 之初识迭代
)出现了手残的现象,写完之后的粗略检查并没有让我发现这个地方,还有鉴于某个知识点可能引起的误会,我先在这里说一下。
问题出现在上面的 __next()__ 上,其实应该是 __next__(),鬼知道我当时为什么那么写,希望没有给你造成认识上的误解,其实如果你是仔细看了例子的话,应该不会有什么认识上的偏差。
我接下来想说的是重点,我当时在写 next 的时候并没有把它当成是一个比较容易混的点,可能对于知道的相对较多的朋友们产生误解,我在这里重新说一下。
在 Python3 中,所有的迭代器对象都有 __next__() 方法,这个方法在 Python2 中的名称是 next()。其实这个没什么难理解的,就是变了个名字而已,怪就怪在 Python3 里有个内置函数 next(),它可以通过迭代器调用 __next__() 方法。具体演示如下,我用的是 Python3。
>>> my_list = ['r','o','c','k','y']
>>> my_iter = iter(my_list)
>>> my_iter.__next__()
'r'
>>> next(my_iter)
'o'
>>> my_iter.next()
Traceback (most recent call last):
File"", line1,in
AttributeError:'list_iterator'object has no attribute'next'
大概就是这么个样子,希望这次我没有表达上的错误,在 Python3 下 my_iter.next() 是报错的,因为没有,而如果是在 Python2 下 my_iter().next() 是没有错误的。
下面说说心里话。
看过我昨天文章(周末了,咱来聊他个百八十万的)的朋友们可能知道,组里带我的大佬离职了,我要接手他的一部分工作独立来做,项目催的比较急,作为一个刚入职三个星期的新人来说,压力还是比较大的。工作之余还要看书,持续学习,同时兼顾写公众号,每次不管多晚我都还在坚持写,虽然这个不能作为我文章出现手残这种低级现象的借口,但我还是想说,我的精力终究是有限的,希望朋友们能多包涵。
因为这几个月申请的公众号都没有了留言功能,所以说在互动程度上比较差,但我还是希望,如果以后你在文章里发现了错误,错别字也好,或者你认为的知识性错误也好,希望可以通过后台留言或者加我微信告诉我,先行谢过。
我期待接下来可以通过自己的学习保持持续的进步,也期待能写出更多通俗易懂和有深度的文章,希望对不离不弃一直关注着我的你负责。
新的一周,燥起来!
The end。
扫一扫,有惊喜
领取专属 10元无门槛券
私享最新 技术干货