码迷,mamicode.com
首页 > 编程语言 > 详细

python第十六天课

时间:2019-11-14 09:26:35      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:十六   一个   tor   值方法   font   python   cti   取值   iterable   

迭代器

1,可迭代对象
内部含有__iter__方法的对象是可迭代对象
遵循可迭代协议
dir() 检查对象含有什么方法
 
 
dir()会返回一个列表,这个列表中含有该对象的以字符串的形式所有方法名。
这样我们就可以判断python中的一个对象是不是可迭代对象了
print(dir("abc"))
判断对象是否是可迭代对象的方法
方法一:
print(‘__iter__‘ in dir([1, 2, 3]))   
通过成员运算符 ,返回bool 值
方法二:
fromcollections .abc import Iterable
print(isinstance(‘123‘,Iterable))
isinstance 判断一个对象是什么类型,返回bool
 
 
迭代器
内部含有__iter__ 且 __next__方法的就是迭代器。
可迭代对象通过.__iter__()可以转换成迭代器,满足迭代器协议。
l= [1, 2, 3]
l_obj= l.__iter__()
判断迭代器的方法:
第一种:
print(‘__next__‘in dir(l_obj))
第二种:
fromcollections.abcimport Iterator
print(isinstance(‘123‘,Iterator))
 
 
迭代器的取值方法:
方法一:
print(l_obj.__next__()) 一次取一个,超出范围会报错
方法二: for 循环
注意:实际上可迭代对象是不可以一个一个的一次取值的,因为他没有__next__方法。
 
 
for循环提供一个机制:
1,将可迭代对象转化成迭代器。
2,利用__next__()进行取值。
3,用try异常处理方法防止报错。
 
迭代器特点:
1,节省内存。
上一条在内存中会被释放
2,满足惰性机制。
next一次,取一个值,绝不过多取值。?
3,取值过程不可逆(一条路走到黑)。
 
 
 
 

python第十六天课

标签:十六   一个   tor   值方法   font   python   cti   取值   iterable   

原文地址:https://www.cnblogs.com/zuohangyu123/p/11854605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!