2020.3.6 继承

发布于 2020-03-06  38 次阅读


Table of Contents

就是可以容纳元素,数据的

可迭代对象iterable

能被for循环的对象,有__iter__的对象,可以返回迭代器对象

迭代器对象

有__next__方法的对象

能够被for循环的条件

__iter__,__next__

不用for循环,拿到字典的所有元素

做出一个迭代器

迭代器的作用

做一种数据结构,就应该做一个迭代器

yield

yield 前面是一段代码,后面是一段代码,区分开
前面的代码放在__next__中,yield后面跟着的就是返回值

遍历可迭代用While

迭代器的内部怎么实现
object = __iter__()
while True: try object.__next__() execp: break

生成器generator

能够动态(循环一次计算一次返回一次)提供数据的可迭代对象。

作用,动态生成数据,可以节省空间
也称为惰性操作,用的时候才生成

生成器函数

含有yield语句的函数,返回值为生成器对象

and和or的复习

and为假就停止运行,返回结果
从左到右扫描,返回第一个为假的表达式值,无假值则返回最后一个表达式值。
or为真就停止运行,返回结果
从左到右扫描,返回第一个为真的表达式值,无真值则返回最后一个表达式值。

大于,小于,区分

1<5:就是1,2,3,4,默认比大于,小于的数减一

什么时候使用yield

需要返回多个对象,需要多次执行

yIeld的过程

含有yield语句的函数,返回值为生成器对象

(1)调用生成器函数会自动创建迭代器对象。

(2)调用迭代器对象的__next__()方法时才执行生成器函数。

(3)每次执行到yield语句时返回数据,暂时离开。

(4)待下次调用__next__()方法时继续从离开处继续执行。

for x in list的执行原理

先调用__iter__函数返回迭代器
调用迭代器的__next__函数一次次返回对象

重写str和repr中最重要的是?

一定要返回字符串,用return

print(函数()) 

输出的是函数的地址

变量的坑

如果变量后面多了一个逗号,就默认视变量为元组