天天看點

利用Conda嘗鮮Python 3.10

  就在幾天前,<code>Python</code>3.10的第一個正式版本<code>3.10.0</code>釋出,之前我們隻是從其各個測試版本中捕風捉影地知曉了一些可能加入的新特性,而在正式版本中,我們得以一睹其正式加入的諸多新特性。

利用Conda嘗鮮Python 3.10

  本文我就将帶大家學習如何通過<code>conda</code>快速安裝3.10正式版本的<code>Python</code>,并體驗其重要的一些新特性。

  如果你已經安裝了<code>conda</code>,那麼直接通過<code>conda-forge</code>的<code>channel</code>,隻需要下面這一行指令即可建立新的<code>Python</code>3.10正式版本虛拟環境:

  完成安裝之後,激活環境進入<code>Python</code>的shell,可以看到版本為3.10.0,離譜的是我在使用<code>pycharm</code>設定環境後,嶄新的3.10.0環境竟然被識别為3.1(真是醉了)😂,于是我換成用<code>vscode</code>進行示範:

利用Conda嘗鮮Python 3.10
利用Conda嘗鮮Python 3.10

  下面就讓我們來體驗其重要的一些新特性吧~

  上一次為<code>Python</code>引入新的文法和關鍵字還是<code>async</code>,而在這次的新版本中,引入了新的關鍵字<code>match</code>與<code>case</code>,進而幫助我們得以在<code>Python</code>中使用到其他語言中類似<code>switch</code>的文法,使用方式如下面例子所示,對于<code>match</code>其後聲明的值,後續的每個<code>case</code>會驗證是否與其對應值相等,最後的<code>case _</code>中的<code>_</code>代表Irrefutable Pattern,相當于通配符,但是隻允許置于最後一個<code>case</code>中:

利用Conda嘗鮮Python 3.10

  <code>match-case</code>文法配合上通配符<code>_</code>,當輸入容器類型的資料結構時,可以進行一些更加自由的判斷:

利用Conda嘗鮮Python 3.10

  更有趣的是,我們還可以使用任意自定義變量名,在<code>match-case</code>的作用域内輔助通配比對,進而實作類似下面例子的效果:

利用Conda嘗鮮Python 3.10

  類似的,針對對象的屬性值,也可以進行類似的通配判斷,更多用法你可以參考下面的例子進行拓展:

利用Conda嘗鮮Python 3.10

  在<code>Python</code>3.10中,針對常見的各種錯誤類型,執行代碼後的錯誤提示更加明确,譬如下面是3.9與3.10針對同一種錯誤的錯誤輸出資訊對比:

利用Conda嘗鮮Python 3.10

  這個特性其實在3.9中就開始出現,在3.10中進一步得到完善,使得下面的用法合法(與3.7進行對比):

利用Conda嘗鮮Python 3.10

  在之前的版本中,當我們用到多類型提示時,得這樣寫:

  而在3.10中,多類型聯合不再必須用到<code>Union</code>,使用<code>|</code>連接配接即可,非常的友善:

  在<code>Python</code>3.10中,代碼的錯誤提示,對于具體錯誤行位置的提示更加準确了:

利用Conda嘗鮮Python 3.10

    以上就是本文的全部内容,歡迎在評論區與我進行讨論。