老男孩Day13

Posted dymlnet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩Day13相关的知识,希望对你有一定的参考价值。

今天是在老男孩学习的第13天,今天考试发现我的知识还差的很远,这次考试开始会单独整理考试错题与平时感觉难的题目。今日内容大致整理如下:

dir方法  打印出该类型的所有方法

print(dir([]))
print(dir(()))
print(dir({}))
print(dir(int))

技术分享图片其中,带下划线的方法,例如__name__方法被称作双下方法,此类方法是由c编程,运行效率快。

其中,只要能使用for循环的方法的数据类型一定有__iter__方法

python规定,只要内部有__iter__方法的数据类型就叫做可迭代,他们都拥有可迭代协议

 

当可迭代对象经过__iter__方法执行后就变成了迭代器

s = [1,2,3,4,5].__iter__()
print(s)

技术分享图片

iter_l = [1,2,3,4,5,6].__iter__()
#获取迭代器中元素的长度
print(A,iter_l.__length_hint__())
#根据索引值指定从哪里开始迭代
print(*,iter_l.__setstate__(4))
#一个一个的取值
print(**,iter_l.__next__())
print(***,iter_l.__next__())

技术分享图片

拿列表举例,当一个列表执行了__iter__方法之后他的返回值就是一个迭代器。

能被for循环的都可迭代,可迭代对象都含有__iter__方法,当他们[变成迭代器后]通过__next__方法可以从迭代器中[一个个]取值

iter_l = [1,2,3,4,5,6].__iter__()
print(iter_l.__next__())
print(iter_l.__next__())
print(iter_l.__next__())
print(iter_l.__next__())

技术分享图片

 

迭代器的好处:

节省内存(迭代器将元素一个个输出,不会一下子存进内存中)

**明日整理生成器

 

以上是关于老男孩Day13的主要内容,如果未能解决你的问题,请参考以下文章

老男孩Python 课堂笔记_Day2

老男孩DAY1作业二

老男孩Day8作业:FTP

老男孩Day9

老男孩Day16

Python老男孩 day11