\

Pythonでは、特定の値のみを許容する型としてLiteral型が存在します。これはPython 3.8以降で使用可能で、ビルトインのtypingパッケージに含まれています。

例えば、Literal[42, 10]というLiteral型は、42か10の整数のみを受け付けます。また、Literal["apple", "orange"]という型は、”apple”もしくは”orange”という文字列のみを受け付けます。これらの値は整数と文字列など、複数の型を混ぜることも可能です。

一方で、Enumは特定の値を列挙するための型で、Literal型とは異なる用途があります。しかし、Literal型とEnumは一部の用途で似たような振る舞いをします。

以下に、Literal型とEnumの使用例を示します。

from typing import Literal
from enum import Enum

class Fruit(Enum):
    APPLE = "apple"
    ORANGE = "orange"

def print_fruit(fruit: Literal["apple", "orange"]) -> None:
    print(fruit)

print_fruit(Fruit.APPLE.value)

この例では、Literal型を使用して特定の文字列のみを受け付ける関数print_fruitを定義しています。そして、Enumを使用してフルーツを表現し、その値をprint_fruit関数に渡しています。

Literal型とEnumの違いを理解することで、Pythonの型システムをより効果的に利用することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です