我们广泛使用静态类型检查,但是我们还需要一些简单的运行时类型检查。我很乐意使用我们的静态类型进行运行时类型检查。我见过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)