Python相关--用于自查

一.yield

1.数组是一个可迭代对象,相似的还有链表,字符串,文件;数组能够是[1,2,3],也能够是[x*x for x in range(3)]; 他的缺点是全部数据都在内存中,若是数据量大的话,很是消耗内存;python

2.生成器是能够迭代的,可是只能够读取它一次,由于用的时候才生成, 好比 (x*x for x in range(3)), 这里用到的是(), 而不是[];数组

3.生成器可以迭代,是由于有一个next()方法,不断调用next(),直至出现异常;bash

4.函数带有yield时,便变成了一个生成器;函数

5.yield具备return做用,迭代一次就会返回yield右边的值,并记录这次迭代的位置,下一次迭代时,会今后次的yield的位置往下执行;ui

6.yield不止用于for循环, 也能够用于函数的参数,只要这个函数容许迭代参数, 好比array.extend();spa

7.send(msg)与next(),均可以用于生成器,send(msg)会传参数给生成器,返回生成器的第几回yield的返回值;生成器第一次调用时,要先调用next()或者send(None),由于第一次的时候,没有上一次yield的位置;code

8.yield from iterable本质上等于for item in iterable: yield item的缩写版;对象

#encoding:UTF-8 
def yield_test(n):  
    for i in range(n):  
        yield call(i)  
        print("i=",i)  
    #作一些其它的事情 
    print("do something.")      
    print("end.")  
  
def call(i):  
    return i*2  
  
#使用for循环 
for i in yield_test(5):  
    print(i,",") 
复制代码

>>>   
0 ,  
i= 0  
2 ,  
i= 1  
4 ,  
i= 2  
6 ,  
i= 3  
8 ,  
i= 4  
do something.  
end.  
>>> 复制代码

二:关于Python3自带的虚拟环境venv

mkdir test_venv            #建立虚拟环境所在的目录
cd test_venv               #进入虚拟环境目录里
python -m venv test        #建立test的虚拟环境 -- 执行后会生成一个test的文件夹,里面有初始化文件
cd test
source bin/activate        #激活虚拟环境复制代码

持续更新...内存

相关文章
相关标签/搜索