Python 3.10の新機能を
俯瞰してみる
Python駿河 勉強会 #28 ~真夏のLT大会~
2021/08/28@オンライン
あっきー
自己紹介
● 株式会社KYOSO勤務
○ IoTのワンストップサービスなど
● 業務では主に、AWS、SORACOM、
AIカメラを使ったサービスを提供
● バックエンド、フロントエンド両方好き
● 推し言語はPythonとTypeScript
● VTuber好き、Dead by Daylight好き
AWS LambdaにPython 3.9来たよー🎉
本日お話しする内容
先日Python 3.10 RCが公開されたのでその内容をざっくりとみていきたいと思いま
す
発表時間が5分なので駆け足で進めますのであしからず
https://docs.python.org/3.10/whatsnew/3.10.html
目次
https://docs.python.org/3.10/whatsnew/3.10.html
Structural Pattern Matching
● PEP 634, Structural Pattern Matching: Specification
● PEP 635, Structural Pattern Matching: Motivation and Rationale
● PEP 636, Structural Pattern Matching: Tutorial
パターンマッチという新しい文法が追加された
これまでもIF,ELIF,ELSEを用いて同様のことが実現可能だったが、よりわかりやすく
記述することが可能になった
Structural Pattern Matching
従来の記法 パターンマッチ使った場合
Parenthesized context managers
● bpo-12782, Parenthesized context managers are now officially allowed.
複数のファイルをオープンしたいときなどに使うwith、かっこを使ってまとめること
ができるようになったよ
じつは3.9でも動いていたけど公式採用されたよ
Parenthesized context managers
従来の記法 新しい記法
Add Optional Length-Checking To zip
● PEP 618, Add Optional Length-Checking To zip
ZIP関数使うときはほとんどが引数の長さが同じ
逆に長さが異なっている場合に発生する不具合の特定が非常に困難なので何と
かしたい
ということで、引数の長さをチェックするstrictフラグ追加したよ
Add Optional Length-Checking To zip
Add Optional Length-Checking To zip
Precise line numbers for debugging and other
tools
● PEP 626, Precise line numbers for debugging and other tools.
これまでデバッガツールなどで表示される行番号が想定と異なる場合があった
が、正確な行番号が表示されるように修正
行番号を取得するf_linenoオブジェクトの動作を改善???
※これに関しては正確に内容が理解できなかったので間違ってたらすみませ
ん。。。。
Allow writing union types as X | Y
● PEP 604, Allow writing union types as X | Y
Union[X, Y] を X | Y って書けるようにしました
Allow writing union types as X | Y
従来の記法
新しい記法
Parameter Specification Variables
● PEP 612, Parameter Specification Variables
typingにParamSpecを追加しました。
デコレータ等でより詳細な型指定ができます。
詳細な解説をすると時間超えそうなので省略、、、
TypeAlias
● PEP 613: TypeAlias
typingにTypeAlias追加しました

Python 3.10の新機能を 俯瞰してみる