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        #激活虛擬環境複製代碼

持續更新...內存

相關文章
相關標籤/搜索