Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可以用doctest测试使用get_type_提示的函数吗?_Python_Annotations_Doctest_Typehints - Fatal编程技术网

Python 可以用doctest测试使用get_type_提示的函数吗?

Python 可以用doctest测试使用get_type_提示的函数吗?,python,annotations,doctest,typehints,Python,Annotations,Doctest,Typehints,我有一个函数可以使用。我想给它加一个。但是,get_type_提示似乎无法解析doctest中定义的类型 以下是一个简化的示例: import typing def f(clazz): """ >>> class MyClass: ... my_field: 'MyClass' >>> f(MyClass) """ typing.get_type_hints(clazz) 当使用python3-m doc

我有一个函数可以使用。我想给它加一个。但是,get_type_提示似乎无法解析doctest中定义的类型

以下是一个简化的示例:

import typing

def f(clazz):
    """
    >>> class MyClass:
    ...   my_field: 'MyClass'
    >>> f(MyClass)
    """
    typing.get_type_hints(clazz)
当使用python3-m doctest test.py运行它时,它会抛出NameError:未定义名称“MyClass”


在文件的开头添加来自未来的导入注释,这对我在python3.7上是有效的。非常感谢。这是键入模块中的一个错误吗?我还想知道为什么我的_字段:“MyClass”在doctest中不起作用,它在doctest和not中有不同的行为。在doctest中使用新语法时,似乎还没有准备好。不幸的是,PEP563注释似乎也存在问题:
from __future__ import annotations

import typing


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