15.12.2022 Views

Python Eficaz

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

self.value = value

def delegated():

yield 1

raise MyReturn(2) # No Python 3 isso seria simplesmente "return 2"

yield 'Not reached'

def composed():

try:

for value in delegated():

yield value

except MyReturn as e:

output = e.value

yield output * 4

print list(composed())

>>>

[1, 8]

Lembre-se

• As corrotinas são um meio muito eficiente de rodar dezenas de milhares de

funções aparentemente ao mesmo tempo.

• Dentro de um gerador, o valor de uma expressão yield será qualquer valor

passado ao método send do código exterior.

• As corrotinas oferecem uma ferramenta poderosa para separar a lógica central

do código (o que você quer fazer) de sua interação com o ambiente ao seu

redor.

• O Python 2 não suporta yield from nem permite que os geradores retornem

valores.

Item 41: Considere usar concurrent.futures para

obter paralelismo real

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!