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

python 学习 D13 迭代器 生成器 列表推导式 生成器表达式

时间:2018-05-16 18:31:09      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:迭代器   区别   pass   class   div   不可   本质   python 学习   print   

02,迭代器
可迭代对象:
    内部含有__iter__ 遵循可迭代协议
dir 显示里面的所有方法 有 __iter__ 的方法就是 可迭代对象

# print(dir(‘123‘))  # ‘__iter__‘
# print(‘__iter__‘ in dir([1, 2, 3]))
# print(‘__iter__‘ in dir({‘name‘:‘alex‘}))
# print(‘__iter__‘ in dir({‘name‘}))
# print(‘__iter__‘ in dir((1, 2, 3)))
# print(‘__iter__‘ in dir(1))  # False
# print(‘__iter__‘ in dir(True))  # False

    迭代器:可迭代对象.__iter__()可以转换成迭代器 ,满足迭代器协议 

    内部含有__iter__且__next__
判断 __iter__ 在不在dir(对象中)
isinstance()
节省内存。
惰性机制。
单向不可逆。
for循环的机制:
while
pass


可迭代对象
迭代器
两者区别
模拟for循环机制

03,生成器
本质上是迭代器,用python代码构建的。
生成器定义
生成器的写法
yield
send

python 学习 D13 迭代器 生成器 列表推导式 生成器表达式

标签:迭代器   区别   pass   class   div   不可   本质   python 学习   print   

原文地址:https://www.cnblogs.com/HoneyTYX/p/9047203.html

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