7得票1回答
如何告诉 Python 类型检查器一个可选项肯定存在?

我习惯使用Typescript,其中可以使用!来告诉类型检查器假定一个值不会为null。在Python中使用类型注释时是否有类似的功能? 一个(人为制造的)例子: 在下面的代码中执行表达式m.maybe_num + 3时,封闭的if保证maybe_num不会是None。但类型检查器不知道这...

7得票1回答
Python子类实例的类型注解签名?

请考虑以下内容: from __future__ import annotations class A: @classmethod def get(cls) -> A: return cls() class B(A): pass def f...

14得票2回答
抽象类方法返回类实例的输入提示

我在下面的代码中得到了类型检查器错误,我希望能够理解如何解决这个错误。 以下基类有一个抽象类方法,我希望每个继承它的子类都实现一个decode函数,该函数返回子类的一个实例。from abc import ABC, abstractmethod from typing import Type...

9得票1回答
Python中变嵌套字典的类型提示

由于我在Python中大量使用类型提示,我遇到了这样一种情况:递归函数接受dict,其键为str,值可为int或dict (Dict[str, Union[int, Dict[...]])。但问题在于,可能的dict-值也具有键为str,值可为int或dict (Dict[str, Union...

59得票9回答
如何正确地为Mixin类添加类型提示?

考虑以下示例。这个例子是人为的,但通过可运行的示例说明了要点:class MultiplicatorMixin: def multiply(self, m: int) -> int: return self.value * m class AdditionM...

7得票3回答
MyPy 找不到我本地包的类型。

我有两个Python包。一个是工具库,另一个是将使用该工具库的应用程序(最终我将有更多的应用程序共享该库)。 我正在使用Poetry管理这两个包,并且应用程序使用path和develop属性指定公共库作为依赖项。 例如,我的布局看起来像这样: - common/ - common/...

22得票2回答
Python泛型中缺少交集类型的解决方法?

我遇到了一个问题,如果使用交叉类型(目前正在讨论但尚未实现),问题将很容易解决,我想知道最干净的解决方法是什么。 当前设置和问题 我的当前设置大致对应于以下动物的ABC层次结构。有一些动物的“特征”(CanFly、CanSwim等)定义为抽象子类(虽然它们也可以被定义为mixin)。 f...

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

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

15得票2回答
我可以作为一个可选参数在dataclasses中吗?在转换成字典时被省略?

我希望能够对一些字典执行静态类型检查(使用vscode里的pylance)。 "棘手" 的部分是,我希望其中一些参数是可选的,且在字典中不显示。 我尝试过使用dataclasses和TypedDict,但到目前为止都没有成功。 from typing import Optional, Lis...

77得票2回答
Python中用于带有kwargs参数的函数的typing.Callable类型签名。

我经常使用 Python 3 的类型支持。 最近,我尝试将函数作为参数传递,但是在 typing.Callable 签名中,我没有找到如何使用 kwargs 的帮助。 请查看以下代码和注释。import typing # some function with a type signature...