欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python 3.8 新功能全解

系統 1612 0

Python 3.8是Python語言的最新版本,它適合用于編寫腳本、自動化以及機器學習和Web開發等各種任務?,F在Python 3.8已經進入官方的beta階段,這個版本帶來了許多語法改變、內存共享、更有效的序列化和反序列化、改進的字典和更多新功能。

Python 3.8還引入了許多性能改進??偟膩碚f,我們即將擁有一個更快、更精確、更一致和更現代的Python。下面是Python 3.8的新功能和最重要的改變。

1、賦值表達式

Python 3.8最明顯的變化就是賦值表達式,即:=操作符。賦值表達式可以講一個值賦給一個變量,即使變量不存在也可以。它可以用在表達式中,無需作為單獨的語句出現。

            
while (line := file.readline()) != "end":  print(chunk)"end":
  print(chunk)
          

上例中,如果變量line不存在則會被創建,然后將file.readline()的返回值賦給它。然后檢查line是否為"end"。如果不是,則讀取下一行,保存在line中,然后繼續測試。

賦值表達式遵循了Python一貫簡潔的傳統,就像列表解析式一樣。其目的在于避免在特定的Python編程模式中出現一些枯燥的樣板代碼。例如,上述代碼用一般寫法需要多寫兩行代碼。

2、僅通過位置指定的參數 ?

僅通過位置指定的參數是函數定義中的一個新語法,可以讓程序員強迫某個參數只能通過位置來指定。這樣可以解決Python函數定義中哪個參數是位置參數、哪個參數是關鍵字參數的模糊性。

僅通過位置指定的參數可以用于如下情況:某個函數接受任意關鍵字參數,但也能接受一個或多個未知參數。Python的內置函數通常都是這種情況,所以允許程序員這樣做,能增強Python語言的一致性。

Python文檔中給出的例子如下:

            
def pow(x, y, z=None, /):  r = x**y  if z is not None:    r %= z  return r
  r = x**y
  if z is not None:
    r %= z
  return r

          

符號 / 分隔了位置參數和關鍵字參數。在這個例子中,所有參數都是未知參數。在以前版本的Python中,z會被認為是關鍵字參數。但采用上述函數定義,pow(2, 10)和pow(2, 10, 5)都是正確的調用方式,而pow(2, 10, z=5)是不正確的。

3、支持f字符串調試

f字符串格式可以更方便地在同一個表達式內進行輸出文本和值或變量的計算,而且效率更高。

            
x = 3 print(f'{x+1}')
print(f'{x+1}')

          

輸出4。

在f字符串表達式末未添加=可以輸出f表達式本身的值,后面是計算后的值

            
x = 3print (f'{x+1=}')
print (f'{x+1=}')
          

輸出為x+1=4。

4、多進程共享內存

在Python 3.8中,multiprocessing模塊提供了SharedMemory類,可以在不同的Python進城之間創建共享的內存區域。

在舊版本的Python中,進程間共享數據只能通過寫入文件、通過網絡套接字發送,或采用Python的pickle模塊進行序列化等方式。共享內存提供了進程間傳遞數據的更快的方式,從而使得Python的多處理器和多內核編程更有效率。

共享內存片段可以作為單純的字節區域來分配,也可以作為不可修改的類似于列表的對象來分配,其中能保存數字類型、字符串、字節對象、None對象等一小部分Python對象。

5、Typing模塊的改進

Python是動態類型語言,但可以通過typing模塊添加類型提示,以便第三方工具驗證Python代碼。Python 3.8給typing添加了一些新元素,因此它能夠支持更健壯的檢查:

  • final修飾器和Final類型標注表明,被修飾或被標注的對象在任何時候都不應該被重寫、繼承,也不能被重新賦值。
  • Literal類型將表達式限定為特定的值或值的列表(不一定是同一個類型的值)。
  • TypedDict可以用來創建字典,其特定鍵的值被限制在一個或多個類型上。注意這些限制僅用于編譯時確定值的合法性,而不能在運行時進行限制。

6、新版本的pickle協議

Python的pickle模塊提供了一種序列化和反序列化Python數據結構或實例的方法,可以將字典原樣保存下來供以后讀取。不同版本的Python支持的pickle協議不同,而最新版本的支持范圍更廣、更強大、更有效的序列化。

Python 3.8引入的第5版pickle協議可以用一種新方法pickle對象,它能支持Python的緩沖區協議,如bytes、memoryviews或Numpy array等。新的pickle避免了許多在pickle這些對象時的內存復制操作。

NumPy、Apache Arrow等外部庫在各自的Python綁定中支持新的pickle協議。新的pickle也可以作為Python 3.6和3.7的插件使用,可以從PyPI上安裝。

7、可反轉字典

Python3.6中重寫了字典,其使用了PyPy項目貢獻的一個新實現。除了更快、更緊湊之外,現在的字典還會繼承元素的順序――元素會按照添加的順序排列,就像列表一樣。Python 3.8還允許在字典上使用reversed()。

8、性能改進

  • 許多內置方法和函數的速度都提高了20%~50%,因為之前許多函數都需要進行不必要的參數轉換。
  • 一個新的opcode緩存可以提高解釋器中特定指令的速度。但是,目前實現了速度改進的只有LOAD_GLOBAL opcode,其速度提高了40%。以后的版本中也會進行類似的優化。
  • 文件復制操作如shutil.copyfile()和shutil.copytree()現在使用平臺特定的調用和其他優化措施,來提高操作速度。
  • 新創建的列表現在平均比以前小了12%,這要歸功于列表構造函數如果能提前知道列表長度的情況下進行的優化。
  • Python 3.8中向新型類(如class A(object))的類變量中的寫入操作變得更快。operator.itemgetter()和collections.namedtuple()也得到了速度優化。

9、Python C API和CPython實現

Python最近的版本在CPython(C語言編寫的Python的參考實現)中使用的C API重構方面下了很大功夫。到目前為止這些工作還在不斷添加,現有的成果包括:

  1. Python初始化配置(Python Initialization Configuration)有了個新的C API,可以實現對Python初始化例程更緊密的控制和更詳細的反饋。如此一來,將Python運行時嵌入到其他應用程序中就會更容易,也可以以編程方式給Python程序傳遞啟動參數。新的API還確保了所有Python配置控制都有一個單一的、一致的位置,因此以后的改變(如Python的新的UTF-8模式)也更為容易。
  2. CPython的另一個新的C API――"vectorcall"調用協議――可以實現針對Python內部方法更快的調用,而無需創建臨時對象。該API依然不穩定,但已有了明顯的改善。該API計劃在Python 3.9中成熟。
  3. Python運行時的審計鉤子為Python運行時提供了兩個API,可以用來勾住事件,從而保證測試框架、日志和審計系統等外部工具能夠監視到它們。

10、如何下載Python 3.8

請點擊下方鏈接,從Python 軟件基金會下載Python 3.8 beta版:

https://www.python.org/downloads/release/python-380b1/

原文:https://www.infoworld.com/article/3400640/the-best-new-features-in-python-38.html?upd=1560521475943

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91三级| 亚洲精品久久久一二三区 | 国产免费久久精品44 | 亚洲国产香蕉视频欧美 | 亚洲欧美一区在线 | 亚洲美女在线播放 | 精品国产青草久久久久福利 | 日韩一区二区三区在线视频 | 精品一区二区三区免费看 | 日韩视频在线观看 | 一区二区三区波多野结衣 | 无遮挡啪啪成人免费网站 | 中文字幕日韩在线 | 黑人群姣中国妞在线观看 | 天天操妹子 | 欧美大尺码毛片 | 精品国产一区二区三区成人影院 | 李飞| 国产视频中文字幕 | 超级碰碰碰频视频免费观看 | 丁香九月婷婷 | 小凤仙的故事 电视剧 | 久久久国产精品免费视频 | av中文字幕在线播放 | 日韩一区二区福利视频 | 三级免费网址 | 亚洲免费黄色 | 日韩视频在线观看 | 久久久久亚洲一区二区三区 | 婷婷色中文字幕 | 亚洲精品久久AV无码蜜桃 | 操网 | 一级毛片视频免费 | 人人人人干 | 婷婷综合色 | 国产精品一区在线观看你懂的 | 久久综合一区二区三区 | 久久久久亚洲 | 欧美午夜免费观看福利片 | 国产探花在线精品一区二区 | 久久小视频|