- 博客(5)
- 收藏
- 关注
原创 函数参数中的可变对象作为参数之坑
def func(l=[]): l.append('end') return l print(func([1,2,3,6])) print(func(['a','b','c'])) 突然一看,似乎没什么问题,确实是没什么问题。下面来坑了 咋一看,好像感觉是错的,理想中的运行结果应该都是['end']才对,可是运行结果是出乎意外的。查阅资料后,才明白。其中理解是这样的: 执行两次func(),都没有传实参进去,我是这样理解的,没有传实参,所以默认都是同一个参数,上图中的l是..
2021-08-26 15:43:09
195
原创 生成器函数
函数就是用def定义的,生成器函数就是在函数的基础上,函数体内部有yield关键字,这就是生成器函数 def func(): yield 1 yield 2 yield 3 这就是生成器函数 对于生成器函数的取值,首先要用一变量来接收yield返回的值,即变量=函数() f=func() 此时,f就是一个生成器对象 对于取值,可以用next(f)依次遍历 ...
2021-08-24 07:55:43
189
原创 进程池间的通信
import time from multiprocessing import Process from multiprocessing import Manager from multiprocessing import Pool def write(queue): for i in range(10): print(f'往队列中放入元素{i}') queue.put(i) time.sleep(1) def read(queue): .
2021-08-23 08:58:00
173
原创 生成器的创建
生成器的创建有两种方式。 一是通过生成器推导式创建; 列表推导式是这样创建的:list1=[i for i in range(5)] 生成器推导式的创建是这样的,把列表推导式的最外层的[]换成(),就可以了,其他不变。 即:gen=(i for i in range(3) 生成器的取值有两种方式。 一是通过for...in...遍历取值 , 代码如下: gen = (i for i in range(10)) for i in gen: print(i) 另一种是通过调用n..
2021-08-23 08:04:32
191
原创 类的实例化
from collections.abc import Iterator, Iterable class Person(): def __init__(self): self.i = 1 def __iter__(self): return self def __next__(self): if self.i <= 100: ret = self.i self.i += 1 .
2021-08-23 07:12:49
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人