使用python类型提示作为运行时类型检查(如果不同,则引发TypeError)

时间:2019-07-12 08:03:14

标签: python types assert type-hinting

我有一个示例函数:

from typing import Dict


def cool_func(foo: Dict[object, str], bar: bool, baz: float) -> None:
    foo_type_error_msg = "foo must be a Dict[object, str]"
    if not foo.isinstance(dict):
        raise TypeError(foo_type_error_msg)
    for s in foo.values():
        if not s.isinstance(str):
            raise TypeError(foo_type_error_msg)

    # the rest of the function

如何使用类型提示中指定的类型在运行时检查变量?请注意,我不想严格限制其他变量(只需检查foo参数)即可。

如果您想知道,我想强制使用该类型,以使错误(由错误的Type引起)不会出现在the rest of the function中的某个位置,并使用户混淆默认错误消息。

我希望我可以有这样的东西:

def cool_func(foo: Dict[object, str], bar: bool, baz: float) -> None:
    check_type('foo')
    # the rest of the function

或至少

def cool_func(foo: Dict[object, str], bar: bool, baz: float) -> None:
    check_type(foo, 'Dict[object, str]')
    # the rest of the function

0 个答案:

没有答案