62、metaclass
63、Python对象协议
https://zhuanlan.zhihu.com/p/26760180
65、Python的迭代器协议
iter(可迭代对象)-->返回迭代器iterator 调用:调用一次返回一个元素,当最后一个元素返回后,再次调用时,抛出StopIteration 异常
iterator.__next__()
或 next(iterator)
设计可迭代对象
上面的看起来没意义
66、生成器
生成器,顾名思义,就是按一定的算法生成一个序列。
迭代器虽然在某些场景表现得像生成器,但它绝非生成器;反而是生成器实现了迭代器协议的,可以在一定程度上看作迭代器。
生成器函数
生成器还有两个很棒的用处:
实现 with 语句的上下文管理协议,利用的是调用生成器函数时函数体并不执行,当第一次调用 next() 方法时才开始执行,并执行到 yield 表达式后中止,直到下一次调用 next() 方法这个特性;
实现协程,利用的是 send()、throw()、close() 等特性。
生成器
88、
需要注意的是,Linux 平台上 multiprocessing 的实现是基于 C 库中的 fork(),所有子进程与父进程的数据是完全相同,因此父进程中所有的资源,如数据结构、打开的文件或者数据库的连接都会在子进程*享。但 Windows 平台上由于没有 fork() 函数,父子进程相对独立,因此保持了平台的兼容性,最好在脚本中加上 if __name__ == "__main__" 的判断,这样可以避免出现 RuntimeError 或者死锁。
a
https://*.com/users/14648/jerub