真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

python獲取函數結果 python獲取函數參數

Python 函數 - 返回生成器

如果函數要返回一系列結果,我們常見的方法就是將結果放到一份列表中,然后返回給調用者。比如下面的函數,返回字符串中每個單詞的首字母在真?zhèn)€字符串中的索引:

創(chuàng)新互聯(lián)建站是一家集網站建設,武夷山企業(yè)網站建設,武夷山品牌網站建設,網站定制,武夷山網站建設報價,網絡營銷,網絡優(yōu)化,武夷山網站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網站。

運行結果:

上述的結果完全符合我們的預期,但 get_word_index 函數不夠簡潔。下面我們嘗試使用生成器來實現:

運行結果:

改寫之后,不僅運行結果符合要求,由于不需要和 result 列表交互,函數也變得非常簡潔。下面我們就來詳細學習下生成器吧~

生成器是指使用 yield 表達式的函數,調用生成器函數時,它并不會真的運行,而是會返回迭代器。每次在這個迭代器上面調用內置的 next 函數時,迭代器就會把生成器推進到下一個 yield 表達式那里。生成器傳給 yield 的值均會由迭代器返回給調用者。

此外,如果輸入量非常大,使用列表作為返回值,那么程序就有可能耗盡內存并崩潰。相反,使用生成器之后,則可以應對任意長度的輸入數據。

例如,下面這個生成器函數可以獲取文件中單詞的索引,而不管文件內容多大,該函數執(zhí)行時消耗的內存,只由單行的文本長度決定:

其中 test_generator.txt 中的內容如下:

運行結果:

下面這句話特別重要: 生成器函數返回的迭代器,是由狀態(tài)的,及調用者不應該反復使用它 。我們那 word_index_iter 來說明:

如果想重復調用,請將其封裝成容器:

運行結果:

關于上述自定義容器的實現原理,我的另外一篇文章做了詳細介紹,鏈接奉上:

Python獲取函數參數個數和默認參數

創(chuàng)建一個函數用來計算三個數的和,如下:

下來,我們對其進行調用:

假設我們要計算這個函數返回結果的平均值。那么此時,我們只需將和值除以參數個數即可,那么參數個數怎么獲取呢?你可能會說:數一下就知道了。那么假設此時有很多的參數,你還去數嗎?此時,明顯這個方法是不恰當的,那么有沒有更加方便、高效的方法呢?我們接著往下看。

通過上面這個例子,我們不但可以獲取參數個數,還可以獲取所有變量名以及默認返回值。此時,我們只需根據自己的需求,去應用就可以了,那么以上的問題,就自然解決了。

python執(zhí)行多進程時,如何獲取函數返回的值

共享變量的方法。

沒有辦法直接實現你的需求,但是,你可以用共享變量的方法實現,比如:

def worker(procnum, return_dict):

'''worker function'''

print str(procnum) + ' represent!'

return_dict[procnum] = procnumif __name__ == '__main__':

manager = Manager()

return_dict = manager.dict()

jobs = [] ? ?for i in range(5):

p = multiprocessing.Process(target=worker, args=(i,return_dict))

jobs.append(p)

p.start() ? ?for proc in jobs:

proc.join() ? ?print return_dict.values()


新聞名稱:python獲取函數結果 python獲取函數參數
新聞來源:http://weahome.cn/article/hpdpeh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部