環境
- Python 3.10
from typing import Optionalしなくて良くなった
昨今のPythonでは型アノテーションが流行っているが、その中でもOptionalは使う機会が多い
例えばPythonの組み込みメソッドであるstr.startswith()は文字列が指定された文字列から開始しているかを調べてくれるが、実は第2引数に整数を渡すことで何文字目から調べるか指定できる。Noneが渡されたときにはなかったことにされる。
'1234567890'.startswith('123') > True '1234567890'.startswith('4567') > False '1234567890'.startswith('4567', 3) > True
これをOptionalを使うと
def startswith(prefix:str, start:Optional[int]=None) ...
と定義できる。
だが、このままだとOptionalがないと怒られてしまう。
NameError: name 'Optional' is not defined
IDEのオートインポート使えよって話かもしれないが、そんな面倒なことをしなくても気軽に書けるのがPythonのメリットではなかったのか。
ってことでPython 3.10からは簡略記法で記述できる。
def startswith(prefix:str, start:int|None=None): ...
うーんこっちのほうが見やすい。何よりimport不要になったのはデカい。
はじめからこっちにしておけばよかったのに