Pythonの型ヒント・型指定の一覧

pythonの型ヒント・型指定の書式をまとめます

余計な説明は省略して、書式だけ列挙します

変数に対する型ヒント

name: str = "ABC"

関数に対する型ヒント

引数がint型、返り値がstr型

def func(x: int) -> str:
    return str(x)

複数の値を returnする場合

def func(x: int) -> tuple[int, int]:
    return x, x*2

コレクション型に対する型ヒント(python3.9以降)

コレクション型(list, tuple, dict, set など)に対する型ヒント書き方です

# str型のlist
myArray: list[str] = ["A", "B"]

# str型のtuple
myTuple: tuple[int, int] = (120, 80)

# str型とint型のdict
myDict: dict[str, int] = {"key1":  1, "key2": 2}

# str型 の set
mySet: set[str] = {"string1", "string2"}

複数の型を許可する(python 3.10以降)

str型または int型を指定する場合は "|" を使います

x : str | int  

引数に None を許容する関数

def f(arg: float | None) -> int:

Generator に対する型ヒント

from typing import Generator

def generate() -> Generator[int, None, None]:
    for i in range(10):
        yield i

型指定は、Generator[YieldType, SendType, ReturnType] と書く。

yield しか使わないジェネレーターなら、SendTypeとReturnTypeはNoneを指定しておけばとりあえずOK。
詳細は typing --- 型ヒントのサポート — Python 3.12.3 ドキュメント

ジェネリクス

C++のテンプレートのような書き方もできます

from collections.abc import Sequence

def car[T](s: Sequence[T]) -> T: 
    return s[0]

car()は、引数がシーケンスS(要素の型はT)、返り値は先頭の要素(型はT)です


Emacs上でリリースノート(GNU Emacs NEWS)を確認する方法

Emacs 29.3が,2024年3月24日にリリースされています.org-mode関連のセキュリティ対策を施したリリースです

変更点の詳細は Emacs NEWS(Changelogに相当するもの)に書かれています

Emacs NEWSはemacs上で

M-x  view-emacs-news

を実行すると読めます

Web上で見る場合は,ソースツリーの etc ディレクトリを覗くと良いです
https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS.29