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

python - 我如何告诉 PyCharm 参数应该是什么类型?

当涉及到构造函数、赋值和方法调用时,PyCharm IDE 非常擅长分析我的源代码并确定每个变量应该是什么类型。我喜欢它正确的时候,因为它给了我很好的代码完成和参数信息,如果我尝试访问一个不存在的属性,它会给我警告。

但是当涉及到参数时,它什么都不知道。代码完成下拉菜单无法显示任何内容,因为它们不知道参数的类型。代码分析无法查找警告。

这有一定的意义。其他呼叫站点可以为该参数传递任何内容。但是,如果我的方法需要一个参数类型,比如说,,pygame.Surface我希望能够以某种方式向 PyCharm 指出,所以它可以Surface在其代码完成下拉列表中向我显示所有的属性,并突出显示警告如果我调用了错误的方法,等等。

有没有办法可以给 PyCharm 一个提示,并说“psst,这个参数应该是类型X”?(或者,也许,本着动态语言的精神,“这个参数应该像“一样X”?我可以接受。)


编辑: CrazyCoder 的答案,下面,是诀窍。对于像我这样想要快速总结的新手,这里是:

相关部分是文档字符串的@type peasant: Person行。

如果您还转到“文件”>“设置”>“Python 集成工具”并将“Docstring 格式”设置为“Epytext”,那么 PyCharm 的“视图”>“快速文档查找”将漂亮地打印参数信息,而不仅仅是按原样打印所有 @-lines。

0 投票
5 回答
138202 浏览

python - 类型提示指定类型的集合

使用 Python 3 的函数注释,是否可以指定同质列表(或其他集合)中包含的项目类型,以便在 PyCharm 和其他 IDE 中进行类型提示?

int 列表的伪 python 代码示例:

我知道可以使用 Docstring ...

...但如果可能的话,我更喜欢注释样式。

0 投票
1 回答
5028 浏览

python - Python 类型提示语法如何/为什么起作用?

我刚刚在PEP 484中看到了以下示例:

正如预期的那样,这在 Python 2 中不起作用:

但是,它适用于 Python 3:

这是出乎意料的。它还没有真正检查类型,正如您在以下示例中看到的那样(它运行,但不抛出异常):

看起来好像:必须是函数的名称,但函数似乎被忽略了:

之后的名称似乎也是如此->

这种类型提示语法是否使用其他东西(如 Java 建模语言使用注释)?这种语法是什么时候引入 Python 的?有没有办法使用这种语法进行静态类型检查?它总是会破坏 Python 2 的兼容性吗?

0 投票
5 回答
151478 浏览

python - Python 3.5 中的类型提示是什么?

Python 3.5 中最受关注的特性之一是类型提示

本文这篇文章中提到了类型提示的一个示例,同时还提到负责任地使用类型提示。有人可以解释更多关于它们以及何时应该使用它们以及何时不使用它们的信息吗?

0 投票
5 回答
4619 浏览

python - 如果传递给带注释的函数的参数类型与指定的类型不匹配,是否有可能使 python 抛出错误?

python3.5 的新特性之一是类型提示。例如下面的代码现在有效:

但是,据我了解,它不会自行检查任何内容,并且其解释方式也与此完全相同:

并且主要是为了帮助静态分析器(并使代码更易于理解)而实现的。但是,当一个无效类型的参数被传递给一个带注释的参数类型的函数时(仅使用类型提示语法)?

0 投票
3 回答
28433 浏览

python - 你如何在 Python 中给一个类型起别名?

在某些(主要是函数式)语言中,您可以执行以下操作:

或者

这样我们就可以构建这样的东西:

有没有办法在 Python 中做到这一点?你可以使用类来做,但是 Python 有很多功能方面,所以我想知道是否可以用更简单的方法来做。

0 投票
2 回答
3690 浏览

python - Python 3.5 类型提示不会导致错误

Python 3.5中的新特性之一是类型提示,其灵感来自mypy

打字:PEP 484 - 打字提示。

我想测试它,但它没有按预期工作。

结果是:

我本来期望一个错误,因为我期望 abool作为返回类型。我在 Python 3.5 (docker) 和本地测试了它。我错过了什么,让它发挥作用吗?这种打字在运行时不起作用吗?

0 投票
7 回答
158098 浏览

python - 如何键入提示具有封闭类类型的方法?

我在 Python 3 中有以下代码:

但是我的编辑器(PyCharm)说引用Position无法解析(在__add__方法中)。我应该如何指定我期望返回类型是 type Position

编辑:我认为这实际上是一个 PyCharm 问题。它实际上使用了警告和代码完成中的信息。

但是,如果我错了,请纠正我,并且需要使用其他语法。

0 投票
2 回答
19385 浏览

python - 类型提示:解决循环依赖

以下产生NameError: name 'Client' is not defined. 我该如何解决?

0 投票
5 回答
195704 浏览

python - 如何使用类型提示指定多个返回类型

我在 python 中有一个函数,可以返回 abool或 a list。有没有办法使用类型提示指定返回类型?

例如,这是正确的方法吗?