色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python 支持同步的推導式版本

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 14:37 ? 次閱讀

PEP-492 和 PEP-525 通過 async/await 語法,引入了對原生協程和異步生成器的支持。本 pep 提議給列表、集合、字典解析式和生成器表達式添加異步的版本。

基本原理和目標

Python 廣泛地支持同步的推導式,允許使用簡單而簡潔的語法生成列表、字典和集合。我們提議為異步代碼實現類似的語法結構。

為了說明可讀性的改善,請考慮下面的例子:

result = []
async for i in aiter():
    if i % 2:
        result.append(i)

有了提議的異步解析式語法,上面的代碼會變得非常簡短:

result = [i async for i in aiter() if i % 2]

本 PEP 也使得在各種解析式中使用 await 表達式成為可能:

result = [await fun() for fun in funcs]

規范

異步的解析式

我們提議允許在列表、集合與字典解析式中使用 async。待 PEP-525 被批準之后,我們還可以創建異步的生成器表達式。

例子:

  • 集合解析式:{i async for i in agen()}
  • 列表解析式:[i async for i in agen()]
  • 字典解析式:{i: i ** 2 async for i in agen()}
  • 生成器表達式:(i ** 2 async for i in agen())

允許在異步解析式和生成器表達式中使用 async for 與 if 以及 for 子句:

dataset = {data for line in aiter()
                async for data in line
                if check(data)}
data = {data for line in aiter() async for data in line if check(data)}

異步解析式只允許在“async def”函數中使用。

原則上,異步生成器表達式允許用在任何上下文中。然而,在 Python 3.6 中,由于 async 和 await 只是“軟關鍵字”(soft-keyword),異步生成器表達式只允許在 async def 函數中使用。一旦 async 和 await 在 Python 3.7 中成為保留關鍵字,這個限制將被移除。

解析式中的 await

我們提議允許在異步和同步解析式中使用 await 表達式:

result = [await fun() for fun in funcs]
result = {await fun() for fun in funcs}
result = {fun: await fun() for fun in funcs}

result = [await fun() for fun in funcs if await smth]
result = {await fun() for fun in funcs if await smth}
result = {fun: await fun() for fun in funcs if await smth}

result = [await fun() async for fun in funcs]
result = {await fun() async for fun in funcs}
result = {fun: await fun() async for fun in funcs}

result = [await fun() async for fun in funcs if await smth]
result = {await fun() async for fun in funcs if await smth}
result = {fun: await fun() async for fun in funcs if await smth}

這只在 async def 函數體中有效。

語法的更新

本提議需要在語法層面做一個修改:在 comp_for 中添加可選的“async”關鍵字:

comp_for: [ASYNC] 'for' exprlist 'in' or_test [comp_iter]

解析式的 AST 節點將有一個新的 is_async 參數

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4329

    瀏覽量

    62578
  • 代碼
    +關注

    關注

    30

    文章

    4780

    瀏覽量

    68539
  • 生成器
    +關注

    關注

    7

    文章

    315

    瀏覽量

    21003
  • python
    +關注

    關注

    56

    文章

    4793

    瀏覽量

    84634
收藏 人收藏

    評論

    相關推薦

    Python哪個版本好用?

    想學習Python的人都會有一個困惑,那就是Python目前有兩個版本Python2和Python3,P
    發表于 01-26 16:39

    Python版本兼容性處理方法

    Python目前有兩個主版本并存,這很讓人苦惱。雖然Python 3有許多優于Python 2的特性,但是Python 2的生態系統更為完善
    發表于 04-28 15:42

    開發者福音!谷歌云APP引擎開始支持Python 3.7

    下方鏈接吧!https://cloud.google.com/appengine/docs/standard/python3/敲重點!—可支持便攜Web應用程序了!App Engine的原始
    發表于 08-14 10:12

    請問大佬有支持imx6ull的python3版本么?

    支持imx6ull的python3版本
    發表于 01-10 06:52

    python推導

    python推導推導(英文名:comprehensions),也叫解析,是
    發表于 02-28 17:14

    如何使用Python同步文件夾

    要創建可分發程序,您需要在自己的計算機上安裝python。電腦。不幸的是,我們將使用的模塊pyinstaller不適用于python 3.6,因此您需要在計算機上安裝python 3.5或更低
    的頭像 發表于 12-11 14:35 ?2717次閱讀

    Python3.9的第一個維護版本候選版本發布

    近期,Python 3.9的第一個維護版本候選版本發布。 IT之家獲悉,Python 3.9.1rc1 是 Python 編程語言最新的主要
    的頭像 發表于 12-08 09:22 ?1682次閱讀

    Logistic回歸數學推導以及python實現

    Logistic回歸數學推導以及python實現
    發表于 02-25 14:48 ?7次下載

    淺析同步與異步Python的區別與概述

    你是否聽到人們說過,異步Python代碼比普通(或同步Python代碼更快?果真是那樣嗎?
    的頭像 發表于 04-25 13:53 ?2211次閱讀
    淺析<b class='flag-5'>同步</b>與異步<b class='flag-5'>Python</b>的區別與概述

    python推導是什么

    python推導 推導(英文名:comprehensions),也叫解析,是
    的頭像 發表于 02-28 17:13 ?2711次閱讀

    Python 3.11與之前Python 版本差異情況

    Python 3.11.0 正式版本預計于今年 10 月份發布,目前已發布了首個和第二個 Beta 版本;預計 Beta 階段將會發布 4 個版本,下一個預發布
    的頭像 發表于 07-22 10:51 ?4855次閱讀

    同步發電機互感系數推導

    同步發電機互感系數推導
    發表于 03-28 10:52 ?0次下載
    <b class='flag-5'>同步</b>發電機互感系數<b class='flag-5'>推導</b>

    Python和Anaconda的版本對應關系

    原文鏈接 Python和Anaconda的版本對應關系如下: Packages included in Anaconda 2022 . 10 for 64 -bit Linux on x 86
    的頭像 發表于 06-13 16:52 ?1228次閱讀
    <b class='flag-5'>Python</b>和Anaconda的<b class='flag-5'>版本</b>對應關系

    python語言表推導和生成器表達式特性

    今天我想向你介紹python語言的兩個非常有用的特性:列表推導和生成器表達式。這兩個特性都可以讓你用一行簡潔的代碼來創建一個序列,而不需要寫循環或者函數。但是它們之間也有一些重要的區別,我們一起
    的頭像 發表于 07-20 09:51 ?834次閱讀
    <b class='flag-5'>python</b>語言表<b class='flag-5'>推導</b><b class='flag-5'>式</b>和生成器表達式特性

    windows7可以安裝python什么版本

    Python 3是新一代Python語言版本。它在語法和功能上與Python 2有一些不同。Python 3.x系列是目前主要
    的頭像 發表于 11-23 17:15 ?2.9w次閱讀
    主站蜘蛛池模板: 99精品观看| 两个人在线观看的视频720| 国产精品免费小视频| 国产精品嫩草影院一区二区三区| 国产精品嫩草影院在线观看免费| 含羞草影院免费区| 久久精品人人做人人爽97| 久久综合伊人| 欧美xxxx性喷潮| 色哦色哦哦色天天综合| 性派对xxxhd| 中文字幕国产在线观看| 麻豆精品国产剧情观看| 欧美.亚洲.日韩.天堂| 日日碰狠狠躁久久躁综合网| 无套内射CHINESEHD| 亚洲无碼网站观看| 99re热精品视频国产免费| 俄罗斯美女破处| 精品国产成人AV在线看| 麻豆国产成人AV在线| 日本aa大片| 蜜臀AV精品一区二区三区| 欧美影院在线观看完整版 mp4| 婷婷午夜影院| 真人美女精美小穴| 粗大分开挺进内射| 好爽胸大好深好多水| 免费撕开胸罩吮胸视频| 色综合久久久久久| 一个人免费观看完整视频日本| wwwav在线| 国拍自产精品福利区| 暖暖 免费 高清 日本在线 | 欧美性情video sexo视频| 丝袜美腿美女被狂躁在线观看| 三级黄色在线视频中文| 亚洲色图激情小说| 成人影片迅雷下载| 久久橹| 色综合a在线|