pir*_*pir 9 python types typing typechecking
我们广泛使用静态类型检查,但我们也需要一些简单的运行时类型检查。我很乐意使用我们的静态类型进行运行时类型检查。我见过 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)
Run Code Online (Sandbox Code Playgroud)
Jos*_*ier 10
Python 3.8 的引入typing.get_args(tp),使得这成为可能:
assert value in get_args(expected_type)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7086 次 |
| 最近记录: |