55得票4回答
如何使用Python的typing.Annotated?

我很难从文档中理解 typing.Annotated 的作用,更难以在文档外找到解释和示例。 或者说它的 "好处" 完全取决于你使用的第三方库?在什么(现实)情况下会用到 Annotated?

55得票3回答
函数类型提示:返回特定值集合的函数

我有一个函数,它只能返回类型为 T 的 a、b 或 c。由于这些值在函数的上下文中具有特殊意义,因此我希望在函数签名中包含这个信息。如何做到这一点? 目前,我使用以下代码: def fun(...) -> "a or b or c": #briefly explain the...

54得票4回答
当值是类的实例时,您能否注释返回类型?

假设有一个带有初始化辅助方法的类:class TrivialClass: def __init__(self, str_arg: str): self.string_attribute = str_arg @classmethod def from_i...

54得票3回答
Python 2中的类型提示

在Python 3中,通过包含typing模块,添加了类型提示。 我们是否可以在Python 2中实现此功能?我唯一能想到的是编写一个装饰器来检查类型,但这将在运行时失败,并且无法像提示那样更早地捕获错误。请参考 PEP 484。

52得票2回答
如果我将默认设置为None,我是否可以省略Optional?

例如:def foo(bar: int = None): pass 当我检查bar的类型/注释时,PyCharm告诉我它是Optional[int]。bar: int = None 看起来比bar: Optional[int] = None 更加简洁,特别是当你有10个以上参数的时候。...

50得票1回答
一个(任意)Python模块的类型提示是什么?

我想为一个模块(类“module”)添加(Python3)类型提示。 typing 包没有提供这个,而 types.ModuleType() 是一个构造函数,它返回一个特定名称的模块对象。 例子: import types def foo(module: types.ModuleType): ...

49得票3回答
如何为一个函数添加类型提示,其中返回类型取决于参数的输入类型?

假设我有一个函数,可以将Python数据类型转换为Postgres数据类型,就像这样:def map_type(input): if isinstance(input, int): return MyEnum(input) elif isinstance(inp...

49得票5回答
如何在函数中对文件名进行类型提示?

在Python中,提示文件名的最佳方式是什么, 以便可以将任何内容传递给函数并将其打开为文件? 特别是使用Pathlib找到的字符串和文件。def myfunc(filename: str) -> None: with open(filename) as f1: ...

48得票2回答
Python 3基类工厂方法返回子类实例的类型提示

假设我有两个类,Base 和 Child,并且在 Base 中有一个工厂方法。 工厂方法调用另一个类方法,该方法可能会被 Base 的子类覆盖。 class Base(object): @classmethod def create(cls, *args: Tuple) -&...

47得票4回答
NumPy ndarray 数据类型的类型提示?

我希望有一个函数,它可以在 dtype 旁边包含 NumPy 数组类型提示。 例如,对于列表,可以执行以下操作...def foo(bar: List[int]): ... 为了给出一个类型提示,表明 bar 必须是由整型组成的list。不幸的是,这个语法会对 NumPy 的 ndar...