本文整理自CSDN Python学习班2017年3月16日的微信公开课,授课老师陈舸。
注:示例代码中用了print()函数,所以,如果在Python2下运行,需要在第一行添加:
from __future__ import print_function
像很多语言一样,Python中也有for语句。for语句可以迭代许多不同的对象,如:
for char in 'hello':
print char
for i in [1,2,3]:
print x
Python可以迭代不同对象的原因是,Python中有一个特定的迭代协议。任何对象,只要满足迭代协议,就是可迭代的。因此,只要实现__iter__()和next()方法,就能实现自己的可迭代对象。例如:
class Letters(object):
def __init__(self):
self.current='a'
def next(self):
if self.current > 'z':
raise StopIteration
result =self.current
self.current=chr(ord(result)+1)
return result
def __iter__(self):
return self
注:这是Python2中的写法,如果在Python3中运行,第