问题标签 [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.
python - 我如何告诉 PyCharm 参数应该是什么类型?
当涉及到构造函数、赋值和方法调用时,PyCharm IDE 非常擅长分析我的源代码并确定每个变量应该是什么类型。我喜欢它正确的时候,因为它给了我很好的代码完成和参数信息,如果我尝试访问一个不存在的属性,它会给我警告。
但是当涉及到参数时,它什么都不知道。代码完成下拉菜单无法显示任何内容,因为它们不知道参数的类型。代码分析无法查找警告。
这有一定的意义。其他呼叫站点可以为该参数传递任何内容。但是,如果我的方法需要一个参数类型,比如说,,pygame.Surface
我希望能够以某种方式向 PyCharm 指出,所以它可以Surface
在其代码完成下拉列表中向我显示所有的属性,并突出显示警告如果我调用了错误的方法,等等。
有没有办法可以给 PyCharm 一个提示,并说“psst,这个参数应该是类型X
”?(或者,也许,本着动态语言的精神,“这个参数应该像“一样X
”?我可以接受。)
编辑: CrazyCoder 的答案,下面,是诀窍。对于像我这样想要快速总结的新手,这里是:
相关部分是文档字符串的@type peasant: Person
行。
如果您还转到“文件”>“设置”>“Python 集成工具”并将“Docstring 格式”设置为“Epytext”,那么 PyCharm 的“视图”>“快速文档查找”将漂亮地打印参数信息,而不仅仅是按原样打印所有 @-lines。
python - 类型提示指定类型的集合
使用 Python 3 的函数注释,是否可以指定同质列表(或其他集合)中包含的项目类型,以便在 PyCharm 和其他 IDE 中进行类型提示?
int 列表的伪 python 代码示例:
我知道可以使用 Docstring ...
...但如果可能的话,我更喜欢注释样式。
python - Python 类型提示语法如何/为什么起作用?
我刚刚在PEP 484中看到了以下示例:
正如预期的那样,这在 Python 2 中不起作用:
但是,它适用于 Python 3:
这是出乎意料的。它还没有真正检查类型,正如您在以下示例中看到的那样(它运行,但不抛出异常):
看起来好像:
必须是函数的名称,但函数似乎被忽略了:
之后的名称似乎也是如此->
。
这种类型提示语法是否使用其他东西(如 Java 建模语言使用注释)?这种语法是什么时候引入 Python 的?有没有办法使用这种语法进行静态类型检查?它总是会破坏 Python 2 的兼容性吗?
python - 如果传递给带注释的函数的参数类型与指定的类型不匹配,是否有可能使 python 抛出错误?
python3.5 的新特性之一是类型提示。例如下面的代码现在有效:
但是,据我了解,它不会自行检查任何内容,并且其解释方式也与此完全相同:
并且主要是为了帮助静态分析器(并使代码更易于理解)而实现的。但是,当一个无效类型的参数被传递给一个带注释的参数类型的函数时(仅使用类型提示语法)?
python - 你如何在 Python 中给一个类型起别名?
在某些(主要是函数式)语言中,您可以执行以下操作:
或者
这样我们就可以构建这样的东西:
有没有办法在 Python 中做到这一点?你可以使用类来做,但是 Python 有很多功能方面,所以我想知道是否可以用更简单的方法来做。
python - 如何键入提示具有封闭类类型的方法?
我在 Python 3 中有以下代码:
但是我的编辑器(PyCharm)说引用Position
无法解析(在__add__
方法中)。我应该如何指定我期望返回类型是 type Position
?
编辑:我认为这实际上是一个 PyCharm 问题。它实际上使用了警告和代码完成中的信息。
但是,如果我错了,请纠正我,并且需要使用其他语法。
python - 类型提示:解决循环依赖
以下产生NameError: name 'Client' is not defined
. 我该如何解决?
python - 如何使用类型提示指定多个返回类型
我在 python 中有一个函数,可以返回 abool
或 a list
。有没有办法使用类型提示指定返回类型?
例如,这是正确的方法吗?