1、python动态添加属性方法的方法,
import types
types.MethodType(属性方法,instance)
2、__slots__的使用。
用来限制class能添加的属性,

3、生成器。
通过列表生成式,把中括号改成小括号,就是一个生成器。
next(instance)#不断生成生成器中的元素。
比如斐波那契数列:

当tiems特别大的时候,用生成器更好:

只要加上yield就是生成器。

生成器可以放在循环里面使用。


程序走到yield会阻塞,然后并不是将yield生成的值赋值给temp,而是通过send(“data”),data会赋值给temp,然后打印。

yield用于多任务中的协程,(进程,线程),很多场景里面,协程是比较快的。
网友评论