Telegram Group & Telegram Channel
Обе конструкции for и with могут быть асинхронными. async with использует магические методы __aenter__ и __aexit__, а async for — методы __aiter__ и __anext__. Все они асинхронные, и внутри них можно использовать await:


import asyncio

class Sleep:
def __init__(self, t):
self._t = t

async def __aenter__(self):
await asyncio.sleep(self._t / 2)

async def __aexit__(self, *args):
await asyncio.sleep(self._t / 2)

async def main():
async with Sleep(2):
print('*')

loop = asyncio.get_event_loop()
loop.run_until_complete(main())


Когда вы реализуете метод __iter__, часто вместо написания итератора с методом __next__ используется оператор yield, который делает метод __iter__ генератором:


class Bracketed:
def __init__(self, data):
self._data = data

def __iter__(self):
for x in self._data:
yield '({})'.format(x)

print(list(Bracketed([1, 2, 3])))
# ['(1)', '(2)', '(3)']


PEP 525 позволяет делать то же самое с методом __aiter__. Наличие операторов yield и await в теле функции делает её асинхронным генератором. В то время как await используется для взаимодействия с циклом событий, yield управляет работой с for:


import asyncio

class Slow:
def __init__(self, data, t=1):
self._data = data
self._t = t

async def __aiter__(self):
for x in self._data:
await asyncio.sleep(self._t)
yield x

async def main():
async for x in Slow([1, 2, 3]):
print(x)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())


👉@BookPython



tg-me.com/BookPython/3484
Create:
Last Update:

Обе конструкции for и with могут быть асинхронными. async with использует магические методы __aenter__ и __aexit__, а async for — методы __aiter__ и __anext__. Все они асинхронные, и внутри них можно использовать await:


import asyncio

class Sleep:
def __init__(self, t):
self._t = t

async def __aenter__(self):
await asyncio.sleep(self._t / 2)

async def __aexit__(self, *args):
await asyncio.sleep(self._t / 2)

async def main():
async with Sleep(2):
print('*')

loop = asyncio.get_event_loop()
loop.run_until_complete(main())


Когда вы реализуете метод __iter__, часто вместо написания итератора с методом __next__ используется оператор yield, который делает метод __iter__ генератором:


class Bracketed:
def __init__(self, data):
self._data = data

def __iter__(self):
for x in self._data:
yield '({})'.format(x)

print(list(Bracketed([1, 2, 3])))
# ['(1)', '(2)', '(3)']


PEP 525 позволяет делать то же самое с методом __aiter__. Наличие операторов yield и await в теле функции делает её асинхронным генератором. В то время как await используется для взаимодействия с циклом событий, yield управляет работой с for:


import asyncio

class Slow:
def __init__(self, data, t=1):
self._data = data
self._t = t

async def __aiter__(self):
for x in self._data:
await asyncio.sleep(self._t)
yield x

async def main():
async for x in Slow([1, 2, 3]):
print(x)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())


👉@BookPython

BY Библиотека Python разработчика | Книги по питону


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/BookPython/3484

View MORE
Open in Telegram


Библиотека Python разработчика Telegram | DID YOU KNOW?

Date: |

For some time, Mr. Durov and a few dozen staffers had no fixed headquarters, but rather traveled the world, setting up shop in one city after another, he told the Journal in 2016. The company now has its operational base in Dubai, though it says it doesn’t keep servers there.Mr. Durov maintains a yearslong friendship from his VK days with actor and tech investor Jared Leto, with whom he shares an ascetic lifestyle that eschews meat and alcohol.

How to Buy Bitcoin?

Most people buy Bitcoin via exchanges, such as Coinbase. Exchanges allow you to buy, sell and hold cryptocurrency, and setting up an account is similar to opening a brokerage account—you’ll need to verify your identity and provide some kind of funding source, such as a bank account or debit card. Major exchanges include Coinbase, Kraken, and Gemini. You can also buy Bitcoin at a broker like Robinhood. Regardless of where you buy your Bitcoin, you’ll need a digital wallet in which to store it. This might be what’s called a hot wallet or a cold wallet. A hot wallet (also called an online wallet) is stored by an exchange or a provider in the cloud. Providers of online wallets include Exodus, Electrum and Mycelium. A cold wallet (or mobile wallet) is an offline device used to store Bitcoin and is not connected to the Internet. Some mobile wallet options include Trezor and Ledger.

Библиотека Python разработчика from us


Telegram Библиотека Python разработчика | Книги по питону
FROM USA