奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現(xiàn)在所在的位置:首頁(yè) >關(guān)于奇酷 > 行業(yè)動(dòng)態(tài) > Python 3.8.0來(lái)了!穩(wěn)定版!

Python 3.8.0來(lái)了!穩(wěn)定版!

來(lái)源:奇酷教育 發(fā)表于:

Python 官網(wǎng)宣布,正式發(fā)布 Python 3 8 0!

  
  Python 3.8.0來(lái)了!穩(wěn)定版!
 
  Python 官網(wǎng)宣布,正式發(fā)布 Python 3.8.0!
 
  Python 3.8.0 穩(wěn)定版的部分新特性
 
  Python 3.8.0穩(wěn)定版的部分新特性:
 
  PEP 572,賦值表達(dá)式
 
  PEP 570,僅位置的參數(shù)
 
  PEP 587,Python初始化配置(改進(jìn)嵌入)
 
  PEP 590,Vectorcall:用于CPython的快速調(diào)用協(xié)議
 
  PEP 578,運(yùn)行時(shí)審核掛鉤
 
  PEP 574,帶外數(shù)據(jù)的Pickle協(xié)議5
 
  Typing相關(guān)(Typing-related):PEP 591,PEP 586和PEP 589
 
  并行文件系統(tǒng)緩存,用于編譯的字節(jié)碼
 
  調(diào)試版本與發(fā)行版本共享ABI
 
  typed_ast被合并回CPython
 
  LOAD_GLOBAL現(xiàn)在快40%
 
  pickle現(xiàn)在默認(rèn)使用協(xié)議4,提高了性能
 
  Python 3.8.0 新增特性&優(yōu)化
 
  那么,這次新發(fā)布的 Python 3.8.0 有哪些重要的改進(jìn)呢?以下是是 Python 3.8 相比 3.7 的新增特性。
 
  PEP 572,賦值表達(dá)式
 
  PEP 570,僅限位置形參
 
  PEP 587,Python 初始化配置(改進(jìn)的嵌入)
 
  PEP 590,Vectorcall:用于 CPython 的快速調(diào)用協(xié)議
 
  PEP 578, Python Runtime Audit Hooks
 
  PEP 574,具有外部數(shù)據(jù)緩沖區(qū)的 pickle 協(xié)議 5
 
  與打字相關(guān):PEP 591(最終限定詞),PEP 586(文學(xué)類型)和 PEP 589(TypedDict)
 
  用于已編譯字節(jié)碼文件的并行文件系統(tǒng)緩存
 
  調(diào)試構(gòu)建使用與發(fā)布構(gòu)建相同的 ABI
 
  f - 字符串支持 = 用于自動(dòng)記錄表達(dá)式和調(diào)試文檔
 
  在 Windows 上,默認(rèn) asyncio 事件循環(huán)現(xiàn)在是 ProactorEventLoop
 
  在 macOS 上,spawn 啟動(dòng)方法默認(rèn)使用 multiprocessing
 
  multiprocessing 現(xiàn)在可以使用共享內(nèi)存段來(lái)避免進(jìn)程之間的酸洗成本
 
  typed_ast 被合并回 CPython
 
  LOAD_GLOBAL 速度加快了 40%
 
  pickle 現(xiàn)在默認(rèn)使用協(xié)議 4,提高了性能
 
  Python 3.8.0 
 
  接下來(lái),我們重點(diǎn)來(lái)看幾個(gè)(來(lái)自Python 3.8 文檔)。
 
  賦值表達(dá)式
 
  Python 3.8.0 有一個(gè)新的語(yǔ)法 :=,它將值賦給一個(gè)更大的表達(dá)式中的變量。它被親切地稱為 “海象運(yùn)算符”(walrus operator),因?yàn)樗L(zhǎng)得像海象的眼睛和象牙。
 
  海象
 
  這個(gè) “海象運(yùn)算符” 在某些時(shí)候可以讓你的代碼更整潔,比如:
 
  在這個(gè)示例中,賦值表達(dá)式可以避免調(diào)用 len () 兩次:
 
  if (n := len(a)) > 10:
 
      print(f"List is too long ({n} elements, expected <= 10)")
 
  類似的益處還可出現(xiàn)在正則表達(dá)式匹配中需要使用兩次匹配對(duì)象的情況中,一次檢測(cè)用于匹配是否發(fā)生,另一次用于提取子分組:
 
  discount = 0.0
 
  if (mo := re.search(r'(d+)% discount', advertisement)):
 
      discount = float(mo.group(1)) / 100.0
 
  此運(yùn)算符也適用于配合 while 循環(huán)計(jì)算一個(gè)值來(lái)檢測(cè)循環(huán)是否終止,而同一個(gè)值又在循環(huán)體中再次被使用的情況:
 
  # Loop over fixed length blocks
 
  while (block := f.read(256)) != '':
 
      process(block)
 
  另一個(gè)值得介紹的用例出現(xiàn)于列表推導(dǎo)式中,在篩選條件中計(jì)算一個(gè)值,而同一個(gè)值又在表達(dá)式中需要被使用:
 
  [clean_name.title() for name in names
 
   if (clean_name := normalize('NFC', name)) in allowed_names]
 
  請(qǐng)盡量將海象運(yùn)算符的使用限制在清晰的場(chǎng)合中,以降低復(fù)雜性并提升可讀性。
 
  了解詳情:https://www.python.org/dev/peps/pep-0572
 
  (由 Morehouse 在 bpo-35224 中貢獻(xiàn)。)
 
  僅限位置形參
 
  新增了一個(gè)函數(shù)形參語(yǔ)法 / 用來(lái)指明某些函數(shù)形參必須使用僅限位置而非關(guān)鍵字參數(shù)的形式。這種標(biāo)記語(yǔ)法與通過(guò) help () 所顯示的使用 Larry Hastings 的 Argument Clinic 工具標(biāo)記的 C 函數(shù)相同。
 
  在下面的例子中,形參 a 和 b 為僅限位置形參,c 或 d 可以是位置形參或關(guān)鍵字形參,而 e 或 f 要求為關(guān)鍵字形參:
 
  def f(a, b, /, c, d, *, e, f):
 
      print(a, b, c, d, e, f)
 
  以下均為合法的調(diào)用:
 
  f(10, 20, 30, d=40, e=50, f=60)
 
  但是,以下均為不合法的調(diào)用:
 
  f(10, b=20, c=30, d=40, e=50, f=60)   # b cannot be a keyword argument
 
  f(10, 20, 30, 40, 50, f=60)           # e must be a keyword argument
 
  這種標(biāo)記形式的一個(gè)用例是它允許純 Python 函數(shù)完整模擬現(xiàn)有的用 C 代碼編寫的函數(shù)的行為。例如,內(nèi)置的 pow () 函數(shù)不接受關(guān)鍵字參數(shù):
 
  def pow(x, y, z=None, /):
 
      "Emulate the built in pow() function"
 
      r = x ** y
 
      return r if z is None else r%z
 
  另一個(gè)用例是在不需要形參名稱時(shí)排除關(guān)鍵字參數(shù)。例如,內(nèi)置的 len () 函數(shù)的簽名為 len (obj, /)。這可以排除如下這種笨拙的調(diào)用形式:
 
  len(obj='hello')  # The "obj" keyword argument impairs readability
 
  另一個(gè)益處是將形參標(biāo)記為僅限位置形參將允許在未來(lái)修改形參名而不會(huì)破壞客戶的代碼。例如,在 statistics 模塊中,形參名 dist 在未來(lái)可能被修改。這使得以下函數(shù)描述成為可能:
 
  def quantiles(dist, /, *, n=4, method='exclusive')
 
      ...
 
  由于在 / 左側(cè)的形參不會(huì)被公開(kāi)為可用關(guān)鍵字,其他形參名仍可在 **kwargs 中使用:
 
  >>> def f(a, b, /, **kwargs):
 
  ...     print(a, b, kwargs)
 
  ...
 
  >>> f(10, 20, a=1, b=2, c=3)         # a and b are used in two ways
 
  10 20 {'a': 1, 'b': 2, 'c': 3}
 
  這極大地簡(jiǎn)化了需要接受任意關(guān)鍵字參數(shù)的函數(shù)和方法的實(shí)現(xiàn)。例如,下面是 collections 模塊中的代碼摘錄:
 
  class Counter(dict):
 
      def __init__(self, iterable=None, /, **kwds):
 
          # Note "iterable" is a possible keyword argument
 
  了解詳情:https://www.python.org/dev/peps/pep-0570
 
  (由 Pablo Galindo 在 bpo-36540 中貢獻(xiàn)。)
 
  用于已編譯字節(jié)碼文件的并行文件系統(tǒng)緩存 
 
  新增的 PYTHONPYCACHEPREFIX 設(shè)置 (也可使用 -X pycache_prefix) 可將隱式的字節(jié)碼緩存配置為使用單獨(dú)的并行文件系統(tǒng)樹(shù),而不是默認(rèn)的每個(gè)源代碼目錄下的 __pycache__ 子目錄。
 
  緩存的位置會(huì)在 sys.pycache_prefix 中報(bào)告 (None 表示默認(rèn)位置即 __pycache__ 子目錄)。
 
  (由 Carl Meyer 在 bpo-33499 中貢獻(xiàn)。)
 
  調(diào)試構(gòu)建使用與發(fā)布構(gòu)建相同的 ABI
 
  發(fā)布構(gòu)建和調(diào)試構(gòu)建現(xiàn)在都是 ABI 兼容的:定義 Py_DEBUG 宏不會(huì)再啟用 Py_TRACE_REFS宏,它引入了唯一的 ABI 不兼容性。Py_TRACE_REFS 宏添加了 sys.getobjects () 函數(shù)和 PYTHONDUMPREFS 環(huán)境變量,它可以使用新的 ./configure --with-trace-refs 構(gòu)建選項(xiàng)來(lái)設(shè)置。(由 Victor Stinner 在 bpo-36465 中貢獻(xiàn)。)
 
  f - 字符串支持 = 用于自動(dòng)記錄表達(dá)式和調(diào)試文檔
 
  增加 = 說(shuō)明符用于 f-string。形式為 f'{expr=}' 的 f - 字符串將擴(kuò)展表示為表達(dá)式文本,加一個(gè)等于號(hào),再加表達(dá)式的求值結(jié)果。例如:
 
  >>> user = 'eric_idle'
 
  >>> member_since = date(1975, 7, 31)
 
  >>> f'{user=} {member_since=}'
 
  "user='eric_idle' member_since=datetime.date(1975, 7, 31)"
 
  通常的 f - 字符串格式說(shuō)明符 允許更細(xì)致地控制所要顯示的表達(dá)式結(jié)果:
 
  >>> delta = date.today() - member_since
 
  >>> f'{user=!s}  {delta.days=:,d}'
 
  'user=eric_idle  delta.days=16,075'
 
  = 說(shuō)明符將輸出整個(gè)表達(dá)式,以便詳細(xì)演示計(jì)算過(guò)程:
 
  >>> print(f'{theta=}  {cos(radians(theta))=:.3f}')
 
  theta=30  cos(radians(theta))=0.866
 
  (由 Eric V. Smith 和 Larry Hastings 在 bpo-36817 中貢獻(xiàn)。)
 
  PEP 587: Python 初始化配置 
 
  PEP 587 增加了一個(gè)新的 C API 用來(lái)配置 Python 初始化,提供對(duì)整個(gè)配置過(guò)程的更細(xì)致控制以及更好的錯(cuò)誤報(bào)告。
 
  Vectorcall: 用于 CPython 的快速調(diào)用協(xié)議 
 
  添加 "vectorcall" 協(xié)議到 Python/C API。它的目標(biāo)是對(duì)已被應(yīng)用于許多類的現(xiàn)有優(yōu)化進(jìn)行正式化。任何實(shí)現(xiàn)可調(diào)用對(duì)象的擴(kuò)展類型均可使用此協(xié)議。
 
  此特性目前為暫定狀態(tài),計(jì)劃在 Python 3.9 將其完全公開(kāi)。
 
  了解詳情:https://www.python.org/dev/peps/pep-0590
 
  (由 Jeroen Demeyer 和 Mark Shannon 在 bpo-36974 中貢獻(xiàn)。)
 
  具有外部數(shù)據(jù)緩沖區(qū)的 pickle 協(xié)議 5
 
  當(dāng)使用 pickle 在 Python 進(jìn)程間傳輸大量數(shù)據(jù)以充分發(fā)揮多核或多機(jī)處理的優(yōu)勢(shì)時(shí),非常重要一點(diǎn)是通過(guò)減少內(nèi)存拷貝來(lái)優(yōu)化傳輸效率,并可能應(yīng)用一些定制技巧例如針對(duì)特定數(shù)據(jù)的壓縮。
 
  pickle 協(xié)議 5 引入了對(duì)于外部緩沖區(qū)的支持,這樣 PEP 3118 兼容的數(shù)據(jù)可以與主 pickle 流分開(kāi)進(jìn)行傳輸,這是由通信層來(lái)確定的。
 
  了解詳情:https://www.python.org/dev/peps/pep-0574
 
  (由 Antoine Pitrou 在 bpo-36785 中貢獻(xiàn)。)
 
  更多詳細(xì)特性,請(qǐng)查閱Python 3.8.0文檔:
 
  https://docs.python.org/zh-cn/3.8/whatsnew/3.8.html
 
  連續(xù)三年奪冠,Python為什么這么受歡迎?
 
  Python 已經(jīng)成為最受歡迎的編程語(yǔ)言。
 
  在2019年度 IEEE Spectrum 編程語(yǔ)言排行榜中,Python 不負(fù)眾望,穩(wěn)居榜首,而且連續(xù)三年奪冠。
 
  IEEE Spectrum 2019 十大編程語(yǔ)言排行如下
 
  Python 的流行在很大程度上是受了大量可用專用庫(kù)的驅(qū)動(dòng),特別是在人工智能領(lǐng)域中。事實(shí)上,Keras 庫(kù)對(duì)深度學(xué)習(xí)開(kāi)發(fā)人員影響很大。但深度學(xué)習(xí)并不是 Python 產(chǎn)生巨大的影響的唯一領(lǐng)域,微處理器計(jì)算能力的顯著提高意味著嵌入式版本的 Python:如 CircuitPython 和 MicroPython,正越來(lái)越受制造商的歡迎。
 
  而 Python 為何能連續(xù)三年奪冠?
 
  Python 的高速發(fā)展主要原因是軟件工程的蓬勃發(fā)展,它吸引了許多零基礎(chǔ)的初學(xué)者。Java 的編程方法對(duì)于初學(xué)者來(lái)說(shuō)太冗長(zhǎng)了,單單想要完全理解和運(yùn)行在 Java 中的 “hello world” 這樣的簡(jiǎn)單程序,你就需要去了解類、靜態(tài)方法和包。在 C 語(yǔ)言中,這要簡(jiǎn)單一些,但是在內(nèi)存管理上還是會(huì)出現(xiàn)一些問(wèn)題。但在 Python 這里,就只是一行代碼的事。所以,Python 越來(lái)越流行,被越來(lái)越多的開(kāi)發(fā)者使用。
 
  對(duì)初學(xué)者友好,是 Python 用戶快速增加的原因之一。如果你還不了解Python,那么最近微軟推出的一套免費(fèi)入門教程是很好的選擇。
 
  視頻地址:
 
  https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
 
  這套視頻教程名為 Python for Beginners,由微軟高級(jí)項(xiàng)目經(jīng)理 Christopher Harrison、以及微軟 AI Gaming 的商業(yè)開(kāi)發(fā)經(jīng)理 Susan Ibach 共同講解,在課程中加入了他們對(duì) Python 的見(jiàn)解,一共有 44 個(gè)視頻。
 
  這套課程最大的特定是輕松簡(jiǎn)潔,一上線就很受歡迎,5 天視頻播放量超 25 萬(wàn),更一度登上 GitHub 趨勢(shì)榜第一名。
 
  我應(yīng)該升級(jí)到 Python 3.8 嗎?
 
  很簡(jiǎn)單,如果你想嘗試前面介紹的 Python 3.8 的任何新功能,那么就應(yīng)該升級(jí)到 Python 3.8。像 pyenv 和 Anaconda 這樣的工具可以很容易地并排安裝多個(gè)版本的 Python。或者,你也可以運(yùn)行官方的 Python 3.8 Docker 容器。嘗試使用一下 Python 3.8,肯定會(huì)眼前一亮~
 
  不過(guò),是否應(yīng)該將生產(chǎn)環(huán)境升級(jí)到 Python 3.8 呢?這需要考慮你的項(xiàng)目是否依賴 Python 3.8 的新功能。升級(jí)環(huán)境以運(yùn)行 Python 3.8 是非常安全的,而且也能利用新版本中的優(yōu)化。不過(guò),如果你想保守一點(diǎn),可以堅(jiān)持到第一個(gè)維護(hù)版本(Python 3.8.1)發(fā)布時(shí)再升級(jí)。
主站蜘蛛池模板: 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 发电机价格|发电机组价格|柴油发电机价格|柴油发电机组价格网 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 楼承板设备-楼承板成型机-免浇筑楼承板机器厂家-捡来 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 雪花制冰机(实验室雪花制冰机)百科 | 电动高压冲洗车_价格-江苏速利达机车有限公司| 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 泰安塞纳春天装饰公司【网站】 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 浙江自考_浙江自学考试网 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 营养师网,营养师考试时间,报名入口—网站首页 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 低温等离子清洗机(双气路进口)-嘉润万丰| 内六角扳手「厂家」-温州市威豪五金工具有限公司 |