当前位置: 首页 > 知识库问答 >
问题:

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

公孙英飙
2023-03-14

我有一个函数,使用typing.get_type_hints。我想给它加一个留档测试。但是,看起来get_type_hints无法解析doctest中定义的类型。

以下是一个简化的示例:

import typing

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

当运行它与python3-m doctesttest.py它抛出NameError:名称'MyClass'没有定义

共有1个答案

吴鸿禧
2023-03-14
from __future__ import annotations

import typing


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

在文件的开头添加来自未来导入注释的,它在python3上对我有用。7.

 类似资料:
  • 我想知道是否有人试图使用jmeter测试gRPC应用程序。 我希望 我可以使用非阻塞/异步存根编写一个gRPC客户端类,该存根对服务器进行非阻塞调用, 创建上述客户端的Jar 将Jar导入JMeter 使用Jeter BeanShell采样器中的Java方法 在花时间尝试上述方法之前,我想看看是否有人尝试过类似的方法 如果上述解决方法有效? 每个线程会创建一个单独的传输控制协议吗? 我们已经用py

  • 问题内容: 我想使用Streams.intRange(int start,int end,int step)实现反向排序的流。但是,似乎java.util.Streams类不再可用(但是它仍在标准库的rt.jar中)。此方法是在其他类中还是被其他方法替代? 问题答案: 实际上,JDK中再也没有这种方法了。您能获得的下一个最接近的位置是,但是只会一步一步走。 一种解决方案是实施您自己的解决方案。例如

  • 假设我有一个带有几个Springbean的测试配置,这些Springbean实际上是模拟的,我想在JUnit测试套件中指定这些模拟的行为。 如果我运行此测试,我将获得: 我知道在测试中使用自动连接字段这样的解决方法,但我想知道是否有办法在JUnit测试中使用自动连接注释?

  • 问题内容: 我正在使用JQuery从URL中获取信息并异步显示在我的页面上。该URL来自其他域,因此我使用JSONP来获取数据。很好 但是,当远程URL关闭时(偶尔发生),我的页面挂起,因为JQuery AJAX 没有调用“成功”或“错误”功能。 我正在使用JQuery 1.7。 我的代码如下: 如果“ somePage”启动,那么我会看到消息“确定”。如果“ somePage”无法访问,那么我什

  • 对于Mockito和其他测试框架,通常有方法在测试类中模拟方法的功能。我似乎无法让ScalaMock接受同样的方式。 在测试课上,我是: 我知道,如果你嘲笑/剔除类,然后在真实实例上调用相同的功能,这是行不通的。但是有一些变通方法,可以使用模拟调用等。 如果这是错误的方法,测试在同一个测试类中使用其他方法的方法的最佳方法是什么?我认为解耦方法是最好的实践。 谢谢

  • 问题内容: 假设我通过创建共享对象并使用LD_PRELOAD首先加载它来替换函数。是否有可能使该功能的参数不同于原始库中的参数? 例如,如果我替换 pthread_mutex_lock ,这样它将代替参数 pthread_mutex_t 而是使用 pthread_my_mutex_t 。可能吗? 其次,除了函数之外,是否可以使用LD_PRELOAD更改结构声明?例如,可以向结构中增加一个字段。 问