Python3.13の新機能 Python 3.13の新機能(その4)PEP 705: TypeDict: 読み取り専用アイテム

PEP 703: フリースレッドモードPEP 696: 型パラメータのデフォルト型PEP 702: 型システムを利用したDeprecate(廃止予定)の指定PEP 705: TypeDict: 読み取り専用アイテム

PEP 705: TypedDict: Read-only items では、TypedDict に読み取り専用の項目を指定できるようになりました。

from typing import TypedDict, ReadOnly

class FooDict(TypedDict):
    x: int
    y: int
    z: ReadOnly[int]  # z は読み取り専用

foo: FooDict = {"x": 1, "y": 2, "z": 3}
foo["x"] = 4  # Ok
foo["z"] = 5  # エラー: "z" is a read-only key in "FooDict"

ただし、リストなどに対する要素の追加などは行えます。

class SeqDict(TypedDict):
    seq: list[int]

d: SeqDict = {"seq": [1]}
foo["seq"].append(2) # Ok
foo["seq"] = [] # エラー
Copyright © 2001-2023 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索