# 面试题## 自动发布功能测试```python'''面试题: 请写出一下代码的执行结果并解释。'''def multipliers(): return [lambda x, i=i: i*x for i in range(4)] # 0, 1, 2, 3 # [func(x): return 0... ...
分类:
其他好文 时间:
2019-07-18 16:44:52
阅读次数:
75
迭代器: 可迭代对象 迭代器对象 总结 for循环原理 迭代器对象无论执行多少次__iter__方法得到的还是迭代器对象本身(******) 迭代器取值的特点 1.只能往后依次取 不能后退 特别注意类型:文件类型 生成器 用户自定义的迭代器,本质就是迭代器 生成器的自主yield 传值 迭代yiel ...
分类:
其他好文 时间:
2019-07-16 00:14:19
阅读次数:
123
send 1. yield可以产出值,可以接收值 2. 在调用send发送非none值之前,我们必须启动一次生成器, 方式有两种 a. gen.send(None) b. next(gen) close 不要随便try catch throw 在yield地方进行捕捉,而不是下一个yield ...
分类:
编程语言 时间:
2019-07-14 13:21:50
阅读次数:
134
协程:是单线程下的并发,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 需要强调的是: 对比操作系统控制线程的切换,用户在单线程内控制协程的切换 优点如下: 缺点如下: 总结协程特点: ...
分类:
编程语言 时间:
2019-07-11 23:24:19
阅读次数:
217
一 greenlet模块 不敢是yield,还是greenlet都没有实现检测io,实现遇到io切换效果 如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻烦),而使用greenlet模块可以 ...
分类:
编程语言 时间:
2019-07-11 23:14:57
阅读次数:
120
迭代器,生成器 结果为 中间的yield用来保存运算进程并且保存a的值,进行下一次的运算 ...
分类:
其他好文 时间:
2019-07-10 18:52:18
阅读次数:
98
● 请你来说一说协程 参考回答: 1、概念: 协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。 例如: 由协程运行结果可能是12x3yz。在执行A的过程中,可以随时中断,去执行B,B也可能 ...
分类:
其他好文 时间:
2019-07-08 13:45:36
阅读次数:
125
1、生成器: 生成器的本质就是迭代器 生成器的特点和迭代器一样,取值方式也和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是手写的迭代器 2、生成器函数 和普通函数没有区别,函数里面由yield的函数的就是生成器函数 生 ...
分类:
Web程序 时间:
2019-07-08 10:51:46
阅读次数:
135
[TOC] 列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。 例如: 生成器 1.定义 一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator),如果函数中包含yield语法,那这个函数就会变成生成器 ...
分类:
编程语言 时间:
2019-07-06 22:08:18
阅读次数:
160
年后到现在一直很忙,都没什么时间记录东西了,其实之前工作中积累了很多知识点,一直都堆在备忘录里,只是因为近几个月经历了一些事情,没有太多的经历来写了,但是一些重要的东西,我还是希望能坚持记录下来。正好最近公司用到了一些本篇文章的知识点,所以就抽空记录一下。 本文代码github地址:https:// ...
分类:
编程语言 时间:
2019-07-06 19:13:09
阅读次数:
176