问题标签 [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 投票
4 回答
120655 浏览

python - 如何在类型提示中指定函数类型?

我想在我当前的 Python 3.5 项目中使用类型提示。我的函数应该接收一个函数作为参数。

如何在类型提示中指定类型函数?

我检查了PEP 483,但在那里找不到函数类型提示。

0 投票
1 回答
7770 浏览

python - Python 3.5+ 中的递归类型

在 Python 3.5 中,添加了类型注释(参见此处)。

有没有定义递归类型注释的方法,例如树状结构?

在上面,注释似乎不起作用List[Employee]。运行代码会导致此错误:

NameError: name 'Employee' is not defined

0 投票
3 回答
192730 浏览

python - 使用类型提示时如何向函数添加默认参数?

如果我有这样的功能:

我想在参数中添加类型提示,我该怎么做?我假设的方式给了我一个语法错误:

以下不会引发语法错误,但它似乎不是处理这种情况的直观方法:

typing我在文档或 Google 搜索中找不到任何内容。

编辑:我不知道默认参数在 Python 中是如何工作的,但为了这个问题,我将保留上面的示例。一般来说,最好执行以下操作:

0 投票
4 回答
9749 浏览

python - 当值是 cls 的实例时,您可以注释返回类型吗?

给定一个带有用于初始化的辅助方法的类:

是否可以注释from_int方法的返回类型?

我都试过了clsTrivialClass但是 PyCharm 将它们标记为未解析的引用,这在当时听起来很合理。

0 投票
3 回答
9952 浏览

python - 仅返回一组特定值的函数的类型提示

我有一个只能返回的函数ab或者c,它们都是类型T。我想在签名中包含这个事实,因为它们在函数上下文中具有特殊含义。我怎么做?

目前,我使用这个

那是正确的吗?

我知道我能做到

但正如我所说,我想在签名中表示该函数只返回那些特定的值。

0 投票
2 回答
83778 浏览

python - 如何使用类型提示指定“可为空”返回类型

假设我有一个功能:

如何为可能的东西指定返回类型None

0 投票
2 回答
80146 浏览

python - 使用列表/元组/等。从键入与直接将类型引用为列表/元组/等

从模块中使用List,Tuple等有什么区别:typing

与直接引用 Python 的类型相反:

我什么时候应该使用其中一个?

0 投票
7 回答
57437 浏览

python - 没有循环导入的 Python 类型提示

我正试图将我的大班分成两部分;好吧,基本上进入“主”类和带有附加功能的mixin,如下所示:

main.py文件:

mymixin.py文件:

现在,虽然这工作得很好,但类型提示MyMixin.func2当然不能工作。我不能 import main.py,因为我会得到一个循环导入并且没有提示,我的编辑器(PyCharm)无法分辨是什么self

我正在使用 Python 3.4,但如果那里有可用的解决方案,我愿意迁移到 3.5。

有什么方法可以将我的类拆分为两个文件并保留所有“连接”,以便我的 IDE 仍然为我提供自动完成功能以及所有其他来自它的知道类型的好东西?

0 投票
2 回答
28194 浏览

python - 打字。任何与对象?

typing.Any使用和object打字有什么区别吗?例如:

相比:

0 投票
2 回答
61960 浏览

python - 什么是变量注解?

Python 3.6 即将发布。PEP 494 - Python 3.6 Release Schedule提到了 12 月底,所以我浏览了 Python 3.6 中的新增功能,看到他们提到了变量注释

PEP 484引入了函数参数类型注释的标准,也就是类型提示。这个 PEP 为 Python 添加了用于注释变量类型的语法,包括类变量和实例变量:

就像函数注解一样,Python 解释器不会为变量注解附加任何特定含义,而只会将它们存储在__annotations__类或模块的特殊属性中。__annotations__与静态类型语言中的变量声明相比,注释语法的目标是提供一种简单的方法,通过抽象语法树和属性为第三方工具和库指定结构化类型元数据。

因此,从我读到的内容来看,它们是来自 Python 3.5 的类型提示的一部分,在What are Type hints in Python 3.5 中进行了描述。

我遵循captain: strandclass Starship示例,但不确定最后一个:如何primes: List[int] = []解释?它是否定义了一个只允许整数的空列表?