【发布时间】:2021-10-07 11:17:47
【问题描述】:
我有这个代码:
from typing import Tuple, Dict, List
CoordinatesType = List[Dict[str, Tuple[int, int]]]
coordinates: CoordinatesType = [
{"coord_one": (1, 2), "coord_two": (3, 5)},
{"coord_one": (0, 1), "coord_two": (2, 5)},
]
我想在运行时检查我的变量是否符合我的自定义类型定义。 我在想类似的东西:
def check_type(instance, type_definition) -> bool:
return isinstance(instance, type_definition)
但显然isinstance 不起作用。
我需要在运行时检查它,实现它的正确方法是什么?
【问题讨论】:
-
你要问的不是python运行时类型检查——也就是说,
List[Dict[str, Tuple[int, int]]]不是真正的类型,它是一个类型的注解 可以使用mypy之类的东西静态检查正确性。要检查coordinates,您必须自己实现逻辑。 -
尝试使用
Typeguard,typeguard.readthedocs.io/en/latest
标签: python python-3.x custom-type typed python-3.10