问题标签 [python-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
58069 浏览

python - 在 namedtuple 中输入提示

考虑以下代码:

上面的代码只是展示我想要实现的目标的一种方式。我想namedtuple使用类型提示。

你知道任何优雅的方式来达到预期的结果吗?

0 投票
1 回答
858 浏览

python - 打字模块中的什么类型描述了一个类?什么类型描述了一个函数?

Python 3.5 中的新typing模块提供了许多用于类型注释的工具。它是否提供了封装概念的对象或类型?功能的概念如何?

在下面定义装饰器的代码中,应该代表什么class_?应该代表什么function?(typing.Callable是不够的,因为例如一个类是可调用的,但代码试图识别方法。) (模块本身的no_type_check()装饰器typing可能是这样行为的装饰器的原型。no_type_check()它本身没有任何注释,类型提示或其他。)

0 投票
3 回答
44186 浏览

python - Python 2 中的类型提示

PEP 484中,类型提示被添加到 Python 3 并包含该typing模块。有没有办法在 Python 2 中做到这一点?我所能想到的就是将装饰器添加到检查类型的方法中,但这会在运行时失败,并且不会像提示允许的那样更早被捕获。

0 投票
1 回答
3087 浏览

python - 正在定义的类型对象的类型提示

我得到错误:

我确信这是一个已知的范例,因为它似乎是一个非常常见的分层类使用问题(自引用类)。我知道我可以将类型更改its_parent_org_unit为 beobject并且它可以工作,但这似乎是错误的做法,主要是因为它破坏了我在调用中检查类型的能力。its_parent_org_unit更改为一种类型后,我得到object了正确的结果:

我对想法和建议持开放态度。做这种事情的最“pythonic”方式是什么?

PS:这种“自引用类”范例/问题的名称是什么,我可以用它来查找其他建议?

0 投票
6 回答
62285 浏览

python - numpy.ndarray 的类型提示/注释 (PEP 484)

有没有人为特定numpy.ndarray类实现类型提示?

现在,我正在使用typing.Any,但如果有更具体的东西会很好。

例如,如果 NumPy 人为他们的array_like对象类添加了类型别名。更好的是,在dtype级别实现支持,以便支持其他对象以及ufunc

0 投票
2 回答
18986 浏览

python - 类型注释中未定义名称

我目前正在创建一个 python 线性代数模块,以供娱乐和练习该语言。我最近尝试向模块添加类型注释,如下所示:

但是,当我尝试导入它时,它会吐出一个NameError: Name 'Vector' is not defined. 我承认这个问题已经以某种形式在这里得到了回答,但它似乎并没有完全为我的情况提供答案。

我想知道的:

  • 我已经在这个文件中定义了这个类。为什么它说名称未定义?
  • 如何Vector以可用于注释的方式定义(作为 a type)?
0 投票
2 回答
79517 浏览

python - Python void 返回类型注解

在 python 3.x 中,通常使用函数的返回类型注解,例如:

“void”类型的正确注释是什么?

我正在考虑 3 个选项:

  1. def foo() -> None:
    • 不是逻辑 IMO,因为None不是类型,
  2. def foo() -> type(None):
    • 使用我所知道的最佳语法来获取NoneType
  3. def foo():
    • 省略显式返回类型信息。

选项 2. 对我来说似乎是最合乎逻辑的,但我已经看到了 1 的一些实例。

0 投票
6 回答
125305 浏览

python - *args 和 **kwargs 的类型注释

我正在尝试使用抽象基类来编写 Python 的类型注释来编写一些接口。有没有办法注释和的可能*args类型**kwargs

例如,如何表示函数的合理参数是一个int或两个ints?type(args)给出了Tuple所以我的猜测是将类型注释为Union[Tuple[int, int], Tuple[int]],但这不起作用。

来自 mypy 的错误消息:

mypy 不喜欢函数调用是有道理的,因为它希望tuple调用本身有 a 。解包后的添加也给出了我不明白的打字错误。

如何注释 和 的合理*args类型**kwargs

0 投票
3 回答
97061 浏览

python - 定义typing.Dict和dict之间的区别?

我正在练习在 Python 3.5 中使用类型提示。我的一位同事使用typing.Dict

两者都工作得很好,似乎没有区别。

我已阅读typing模块文档

我应该在typing.Dict程序dict中使用哪一个?

0 投票
0 回答
123 浏览

python - 未实现 Python 3.5 类型模块的 PEP 484 中的 Type[T]。如何检查班级类型?

因此,PEP 484 有“类对象的类型”部分。

在本节中,指出以下应该是可能的:

我刚刚开始使用打字模块。我的问题是,当试图找到类型提示时,我找不到它。它不在源代码或文档中。

发行说明表明打字模块实现了 PEP 484。没有迹象表明实现不完整。有没有办法在当前版本上制作这种类型提示?还是现在根本不可能?

谢谢。