是否可以通过doctest测试使用get_type_hints的函数?

时间:2019-05-01 14:00:13

标签: python annotations doctest typehints

我有一个使用typing.get_type_hints的函数。我想添加一个documentation test。但是,看来get_type_hints无法解析doctest中定义的类型。

这是一个简化的示例:

import typing

def f(clazz):
    """
    >>> class MyClass:
    ...   my_field: 'MyClass'
    >>> f(MyClass)
    """
    typing.get_type_hints(clazz)

python3 -m doctest test.py一起运行时,它会抛出NameError: name 'MyClass' is not defined

1 个答案:

答案 0 :(得分:1)

from __future__ import annotations

import typing


def f(clazz):
    """
    >>> test = 1
    >>> class MyClass:
    ...   my_field:'MyClass'
    >>> f(MyClass)
    """
    typing.get_type_hints(clazz)

在文件的开头添加from __future__ import annotations,它在python3.7上对我有用