15

Literal[]from からリテラル値を取得するにはどうすればよいtypingですか?

from typing import Literal, Union

Add = Literal['add']
Multiply = Literal['mul']
Action = Union[Add,Multiply]

def do(a: Action):
    if a == Add:
        print("Adding!")
    elif a == Multiply:
        print("Multiplying!")
    else:
        raise ValueError

do('add')

上記のコード'add'は が typeであるため、型をチェックしますが、文字列が と同じではないLiteral['add']ため、実行時に ValueError が発生します。'add'typing.Literal['add']

型レベルで定義したリテラルを実行時に再利用するにはどうすればよいですか?

4

1 に答える 1