我有一个使用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
。
答案 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上对我有用