检查字符串是否为字符串文字类型

2024-10-01 07:28:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我们广泛使用静态类型检查,但也需要一些简单的运行时类型检查。我希望使用静态类型进行运行时类型检查。我看过typeguard和其他库,但我更喜欢简单一些的

我在下面尝试过,但是assert value in expected_type没有意义。如何创建一个简单的函数来检查字符串是否为Python字符串文字

from typing_extensions import Literal

def check_str_in_literal(value: str, expected_type: Literal):
    assert value in expected_type

Gender = Literal["Male", "Female", "Other"]
def print_gender(gender: Gender):
    print(gender)

# Unknown string as it's been retrieved from elsewhere
strRetrievedFromDB = "Male"  # type: ignore

check_str_in_literal(strRetrievedFromDB, Gender)
print_gender(strRetrievedFromDB)

Tags: 字符串infrom类型valuetype静态assert