9得票1回答
如何确保参数具有相同的类型而不需要显式列出这些类型?

假设我们需要一个函数,接受两个任意类型的参数,只要这两个参数的类型相同。如何使用mypy静态地检查它? 如果我们只需要函数接受一些已知的有限类型,那就很容易: from typing import TypeVar, List, Callable T = TypeVar('T', int,...

20得票6回答
在运行时验证Python TypedDict

我正在一个Python 3.8+ Django/Rest-Framework环境中工作,强制在新代码中使用类型,但建立在大量未经分类的遗留代码和数据之上。我们广泛使用TypedDicts来确保我们生成的数据以正确的数据类型传递到我们的TypeScript前端。MyPy/PyCharm等工具很好...

28得票3回答
支持 __getitem__ 方法的类的 Python 类型提示

我希望将类型提示添加到一个函数中,该函数将接受任何具有__getitem__方法的对象。例如,在def my_function(hasitems, locator): hasitems[locator] 我不想将hasitems限制为特定类型,如list或dict。只要它支持__get...

7得票1回答
如果类已经被导入用于类型提示,那么“from __future__ import annotations”的好处是什么?

导入 from __future__ import annotations 有什么好处?如果我理解正确的话,我应该停止在运行时不必要地输入导入。 在我的示例中,HelloWorld 仅用于类型。但是使用此代码时,输出始终为: 应该发生这种情况吗? x = World! 当我删除 from...

126得票2回答
在解包元组时使用类型提示?

当解包元组时,是否可以使用类型提示?我想这样做,但结果会导致SyntaxError: from typing import Tuple t: Tuple[int, int] = (1, 2) a: int, b: int = t # ^ SyntaxError: invalid s...

10得票2回答
Python类型注释:一个列表的子类

我希望能够定义一个列表子类的内容应该是什么。这个类会看起来像下面这样。class A(list): def __init__(self): list.__init__(self) 我希望能够添加打字功能,使得以下内容的效果可以实现。import typing class A...

14得票2回答
Python类型提示: 连接序列

在Python中,通常使用+运算符来连接两个序列。但是,mypy会对以下内容进行投诉: from typing import Sequence def concat1(a: Sequence, b: Sequence) -> Sequence: return a + b ...

13得票1回答
Mypy:子类中更具体的参数

我希望声明一个基类,其中含有一个带有类型参数的抽象方法,以便实现该类的子类可以为该参数指定更具体的类型,例如:from abc import ABC, abstractmethod class Job(ABC): pass class EasyJob(Job): pass ...

12得票1回答
如何在Python @dataclass中声明数组或列表?

我该如何在@dataclass中声明一个数组(或至少是列表)?类似下面这样:from dataclasses import dataclass @dataclass class Test(): my_array: Array[ChildType]

19得票3回答
Python 3.6: {method}的签名与超类型{Class}不兼容。

尝试将我的代码更新为符合PEP-484标准(我使用mypy 0.610),我遇到了以下报告: $ mypy mymodule --strict-optional --ignore-missing-imports --disallow-untyped-calls --python-versio...