python基础----__next__和__iter__实现迭代器协议
2017-04-25 17:04
691 查看
from collections import Iterable,Iterator class Foo: def __init__(self,start): self.start=start def __iter__(self): return self def __next__(self): return 'aSB' f=Foo(0) f.__iter__() f.__next__() print(isinstance(f,Iterable)) print(isinstance(f,Iterator)) print(next(f)) #f.__next__() print(next(f)) #f.__next__() print(next(f)) #f.__next__() for i in f: # res=f.__iter__() #next(res) print(i) from collections import Iterable,Iterator class Foo: def __init__(self,start): self.start=start def __iter__(self): return self def __next__(self): if self.start > 10: raise StopIteration n=self.start self.start+=1 return n f=Foo(0) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f)) for i in f: print('====>',i) class Range: '123' def __init__(self,start,end): self.start=start self.end=end def __iter__(self): return self def __next__(self): if self.start == self.end: raise StopIteration n=self.start self.start+=1 return n for i in Range(0,3): print(i) print(Range.__doc__) class Foo: '我是描述信息' pass class Bar(Foo): pass print(Bar.__doc__) #该属性无法继承给子类 b=Bar() print(b.__class__) print(b.__module__) print(Foo.__module__) print(Foo.__class__) #?笔记
相关文章推荐
- 迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有
- 补8.python之面向对象(通过__iter__,__next__实现迭代器协议)附带斐波那契数列实现
- Python基础迭代器iter() 和 next()。
- Python3基础 iter()与next() 进行迭代时超出了范围 产生StopIteration异常
- 迭代器(关键词:Python/iterator/iterable/__iter__/next)
- Python3基础 生成一个可以使用for循环可迭代的类,具有__iter__和__next__的方法的类
- python基础----实现上下文管理协议__enter__和__exit__
- python3----基础 用while循环+iter()+next() 实现对字符串的遍历与输出
- python 3-1 如何实现可迭代对象iterable和迭代器对象iterator,__iter__,__getitem__
- Python3之自己实现迭代器协议
- python基础===Python 迭代器模块 itertools 简介
- python迭代器:next( ),__next__( ), iter()
- Python3基础 str while+iter+next 字符串的遍历与输出
- ·python·用生成器和迭代器实现自己的xrange
- Python模块学习 ---- httplib HTTP协议客户端实现
- Yale CAS实现原理及其基础协议
- Python模块学习 ---- httplib HTTP协议客户端实现
- python使用迭代器实现关键字检索
- python·用生成器和迭代器实现自己的xrange
- TypeError: iter() returned non-iterator of type 'xx' 从Python3开始,要用__next__