time.sleep() 函數(shù)命名來源于英文單詞time(時(shí)間)和sleep(睡眠)。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供噶爾網(wǎng)站建設(shè)、噶爾做網(wǎng)站、噶爾網(wǎng)站設(shè)計(jì)、噶爾網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、噶爾企業(yè)網(wǎng)站模板建站服務(wù),10多年噶爾做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
time 是python帶的非內(nèi)置庫,使用時(shí)需要import,主要用于處理和時(shí)間相關(guān)的操作。
time.sleep用于給定時(shí)間內(nèi)掛起(等待)當(dāng)前線程的執(zhí)行。
time.sleep() 函數(shù)的例子:
可以注釋掉time.sleep(2)再運(yùn)行一次對比一下
可以看到雖然都是打印出一樣的結(jié)果,但time.sleep()加入了等待時(shí)間
這里還要解釋一下python中線程與進(jìn)程的區(qū)別。
舉個(gè)例子,廚房做菜看成是一個(gè)進(jìn)程,那么這個(gè)進(jìn)程下面就可能有多個(gè)人或一個(gè)人(cpu基本執(zhí)行單元,即線程)來執(zhí)行,多個(gè)人可以分別洗菜,刷碗,擺盤等等同時(shí)作業(yè),他們又是共享這個(gè)廚房的資源的。每個(gè)人存在一定的資源競爭關(guān)系,比如爐火只有1個(gè)。
這里time.sleep是針對線程執(zhí)行的,也就是其中一個(gè)人去sleep睡覺了,不影響其他人的繼續(xù)工作。
參數(shù)
該函數(shù)沒有返回值。
結(jié)果類似如下:
可以看到秒數(shù)相差了5
無
time.sleep()常用于推遲執(zhí)行的場景
在python中,與時(shí)間相關(guān)的模塊有:time,datetime以及calendar
對基礎(chǔ)運(yùn)行環(huán)境有疑問的,推薦參考: python函數(shù)深入淺出 0.基礎(chǔ)篇
這種函數(shù)是便于在別人調(diào)用的時(shí)候,如果沒有傳入?yún)?shù)的時(shí)候,采用的默認(rèn)值 現(xiàn)在你有add(a=1,b=2)的函數(shù) 我直接print add() 就可以直接輸出3了 定義如下: def add(a=1,b=2): return a+b ps:你上面多打了一個(gè)右括號
random() 函數(shù)命名來源于英文單詞random(隨機(jī))。
randint是random + integer拼接簡寫而成,代表隨機(jī)一個(gè)整數(shù)
Python標(biāo)準(zhǔn)庫中的random函數(shù),可以生成隨機(jī)浮點(diǎn)數(shù)、整數(shù)、字符串,甚至幫助你隨機(jī)選擇列表序列中的一個(gè)元素,打亂一組數(shù)據(jù)等。
random.randint() 函數(shù)的例子:
用于生成一個(gè)指定范圍內(nèi)的整數(shù)。其中參數(shù)a是下限,參數(shù)b是上限,生成的隨機(jī)數(shù)n:a=n=b
a必須小于或等于b,否則報(bào)錯(cuò)。
其他random的方法:
無
隨機(jī)數(shù)是用于生成測試入?yún)⒌暮棉k法,也常見于各種需要隨機(jī)的場合。
但是每次隨機(jī)帶來的不確定性也會(huì)造成某些驗(yàn)證功能的困難,因此可以使用random.seed()通過指定隨機(jī)的種子值保證每次生成隨機(jī)數(shù)是同一序列的偽隨機(jī)數(shù)。觀察下面的輸出:
對基礎(chǔ)運(yùn)行環(huán)境有疑問的,推薦參考: python函數(shù)深入淺出 0.基礎(chǔ)篇
python回調(diào)函數(shù)的使用方法
在計(jì)算機(jī)程序設(shè)計(jì)中,回調(diào)函數(shù),或簡稱回調(diào)(Callback),是指通過函數(shù)參數(shù)傳遞到其它代碼的,某一塊可執(zhí)行代碼的引用。這一設(shè)計(jì)允許了底層代碼調(diào)用在高層定義的子程序
有兩種類型的回調(diào)函數(shù):
那么,在python中如何實(shí)現(xiàn)回調(diào)函數(shù)呢,看代碼:
代碼如下:
def my_callback(input):
print "function my_callback was called with %s input" % (input,)
def caller(input, func):
func(input)
for i in range(5):
caller(i, my_callback)
兩種情況:
一種情況是繼承的時(shí)候會(huì)用到的,父類中的方法只做聲明處理,具體實(shí)現(xiàn)由子類實(shí)現(xiàn),父類中的方法直接pass處理;
第二種情況是該函數(shù)不是由python實(shí)現(xiàn)的,是由C或者其他語言實(shí)現(xiàn)的,盡管有很多標(biāo)準(zhǔn)庫是由python代碼實(shí)現(xiàn),但是涉及到底層支撐架構(gòu)的功能還是C代碼。一些IDE為了對這些進(jìn)行友好代碼提示,會(huì)弄和底層一樣的訪問接口,而其實(shí)現(xiàn)直接寫 pass 略過。如果是用C實(shí)現(xiàn)的方法,具體的實(shí)現(xiàn)可以到CPython上看,這也是開源的。
標(biāo)題名稱:python函數(shù)運(yùn)行底層,python 底層原理
轉(zhuǎn)載注明:http://sd-ha.com/article26/phhhjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、微信公眾號、品牌網(wǎng)站制作、網(wǎng)站排名、定制網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)