快速提示:了解Python中的收益關鍵詞
,請幫助同行評論這篇文章。 >在python中調用功能時,該功能通常會開始工作,直到遇到返回,異常或達到其末端,然後將其返回控制回呼叫者。每當您再次調用該函數時,該過程將從
> cratch! 開始 說您要求一個人在路上追踪紅色汽車。該人會不斷提出一個問題,問他們是否發現了一輛紅色的汽車,該人又以“是”或“否”回答。如果該人回答“是”,則發現紅色汽車的次數將增加。
>讓我們看看如何在Python中做到這一點:
如果您運行程序,您會注意到什麼?您是否注意到“是”答案的次數總是被限制為1,當您回答“否”時,次數會得到0,而不論以前回答“是”?
>import time def red_cars(answer): n = 0 while True: if answer == 'yes': n = n + 1 return n else: return n stop = time.time() + 5 * 60 while time.time() < stop: answer = raw_input('Did you spot a red car on the road? ("yes" or "no"): ') times = red_cars(answer) print 'You have spotted ' + str(times) + ' cars so far!'
說我們有以下簡單的python腳本:
如果運行腳本,您將獲得以下輸出:>
現在,如果我們使用收益率,如下:
>輸出將如下:
def step_by_step(): return 'step 1' return 'step 2' return 'step 3' step = step_by_step() for i in range (3): print step
如您所見,我們能夠創建值的值
序列step 1 step 1 step 1
如果我們回到主要示例(紅色汽車),則可以按以下方式寫入所需任務:
def step_by_step(): yield 'step 1' yield 'step 2' yield 'step 3' step = step_by_step() for i in range (3): print step.next()
>
但是,有其他產量的用途。例如,如果您具有返回序列的函數(例如,在Excel表中的行),則可以使用收益率,並且您需要在序列上迭代序列,而不會一次內存中每個值。也就是說,保存內存。step 1 step 2 step 3
>收益率,在該功能之間我們有一個很難傳遞的大列表。例如,Python的內置功能可用於iTertools模塊中的排列和組合使用。
> python中的收益關鍵字的常見問題(常見問題解答)python中的收益率和返回關鍵字之間有什麼區別?當您希望函數產生值然後終止時,將使用返回關鍵字。函數返回值後,執行並將控件傳遞回呼叫者。另一方面,收益率關鍵字在函數中使用,例如返回語句,但會產生一個值並暫停該函數的執行。該函數可以在稍後從關閉的位置恢復,允許其隨著時間的推移產生一系列值,而不是一次計算它們並像列表一樣將它們發送回去。 >如何產生關鍵字。在python? 中工作,python中的產量關鍵字用於具有循環創建迭代器的函數。當調用函數時,它將返回迭代器,但不會立即開始執行。當調用迭代器的Next()方法時,函數開始執行。一旦遇到收益率關鍵字,它就會返回傳遞的參數以屈服並停止執行。可以通過再次調用Next()從關閉的位置恢復該函數,從而允許該函數隨著時間的推移產生一系列值,表現為發電機。
您是否可以提供使用farter keyword的示例在python?
中,可以肯定的是,這是一個簡單的示例:在python中使用收益率關鍵字:
def simple_generator(): y> yarts 1
yourts 2 產量3 sipser_generator()中的值: print(value) 中的收益率和返回語句,是的,python中的功能可以包含產量和返回語句。但是,重要的是要注意,一旦執行返回語句,函數的執行終止,並且控件將轉移回呼叫者。因此,如果在收益率聲明之前執行返迴聲明,將永遠無法達到收益表。相反,如果首先執行收益表語句,則該函數將被暫停,並且控制權將轉回呼叫者,但是稍後可以恢復該函數,此時可以執行返回語句。我可以在Python中使用遞歸功能中的收益關鍵字嗎?但是,您需要記住在遞歸調用上迭代並產生每個值,否則您將獲得一個發電機對象而不是期望的值。 中,生成器函數與Python中的正常函數之間的主要區別在於,生成器函數使用收益率關鍵字,而正常函數則使用返回關鍵字。當調用發電機函數時,它將返回生成器對象,甚至不啟動函數執行。當第一次調用Next()方法時,該函數開始執行,直到達到產量關鍵字(產生值)。然後,該功能暫停執行和控制將傳遞回呼叫者。另一方面,當調用正常函數時,它立即開始執行並運行到完成,返回一個值。 >如何捕獲生成器函數在python? def simple_generator(): 產量3
在此示例中,simple_generator是一個生成器函數,因為它使用了收益率關鍵字,因此
print(value)。當我們迭代由simple_generator()返回的發電機對象時,它產生了1,然後是2,然後是3,暫停了其在每個收益率之間的執行。
在python中使用收益率關鍵字有什麼好處? >
python中的收益關鍵字允許您編寫可以隨時間產生結果的序列,而不是一次計算它們並將其返回列表中。當結果集很大並且要保存內存時,這可能特別有用。它還允許您創建自己的迭代對象,並將它們與python的對像一起使用,以進行循環,綜合和其他期望具有疑問的功能。
>>一個函數可以包含python?
>生成器函數與正常函數之間有什麼區別在Python?
我可以在python中的單個函數中使用多個收益率語句嗎?是的,您可以在Python中的單個功能中使用多個收益語句。調用函數時,每次遇到收益率語句,暫停其執行並將控件傳遞回呼叫者時,它將產生一個值。下次調用函數的下一個()方法時,它將恢復執行從關閉的位置並運行直到遇到下一個收益率語句的執行。
> python中的發電機函數沒有更多的屈服值時,它會引起停止異常。您可以使用try/def block捕獲此異常。以下是一個示例:
屈服1
屈服2
gen = simple_generator()
嘗試:
print(next(gen))> stopiteration:
在此示例中,我們捕獲了停止的異常,並在沒有的情況下脫離循環
的更多值>我可以在python中使用lambda函數中的收益關鍵字嗎?這是因為lambda函數僅限於單個表達式,而產量關鍵字引入了語句上下文。如果您需要創建生成器函數,則需要使用DEF語句來定義正常函數。
以上是快速提示:了解Python中的收益關鍵詞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

Arm64 架構開源軟件的 CI/CD 難題與解決方案 在 Arm64 架構上部署開源軟件需要一個強大的 CI/CD 環境。然而,Arm64 和傳統 x86 處理器架構的支持水平之間存在差異,Arm64 通常處於劣勢。面向多種架構的基礎設施組件開發人員對工作環境有一定的期望: 一致性:跨平台使用的工具和方法保持一致,避免因採用不太流行的平台而需要改變開發流程。 性能:平台和支持機制具有良好的性能,確保在支持多個平台時部署方案不會因速度不足而受影響。 測試覆蓋率:對所有平台同時進行效率、合規性和

定制电信软件开发无疑是一项相当大的投资。然而,从长远来看,您可能会意识到,这样的项目可能更具成本效益,因为它可以像市场上任何现成的解决方案一样提高您的生产力。了解构建定制电信系统的最重要优势。 获取您所需的确切功能 您可以购买的现成电信软件有两个潜在问题。有些缺乏可能显著改善您工作效率的有用功能。有时您可以通过一些外部集成来增强它们,但这并不总是足以使它们变得出色。 其他软件功能过多,使用起来过于复杂。您可能不会使用其中的一些(永远不会!)。大量的功能通常还会增加价格。 基于您的需求
