问题标签 [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 - Python 3.5+ 中的递归类型
在 Python 3.5 中,添加了类型注释(参见此处)。
有没有定义递归类型注释的方法,例如树状结构?
在上面,注释似乎不起作用List[Employee]
。运行代码会导致此错误:
NameError: name 'Employee' is not defined
python - 使用类型提示时如何向函数添加默认参数?
如果我有这样的功能:
我想在参数中添加类型提示,我该怎么做?我假设的方式给了我一个语法错误:
以下不会引发语法错误,但它似乎不是处理这种情况的直观方法:
typing
我在文档或 Google 搜索中找不到任何内容。
编辑:我不知道默认参数在 Python 中是如何工作的,但为了这个问题,我将保留上面的示例。一般来说,最好执行以下操作:
python - 当值是 cls 的实例时,您可以注释返回类型吗?
给定一个带有用于初始化的辅助方法的类:
是否可以注释from_int
方法的返回类型?
我都试过了cls
,TrivialClass
但是 PyCharm 将它们标记为未解析的引用,这在当时听起来很合理。
python - 仅返回一组特定值的函数的类型提示
我有一个只能返回的函数a
,b
或者c
,它们都是类型T
。我想在签名中包含这个事实,因为它们在函数上下文中具有特殊含义。我怎么做?
目前,我使用这个
那是正确的吗?
我知道我能做到
但正如我所说,我想在签名中表示该函数只返回那些特定的值。
python - 如何使用类型提示指定“可为空”返回类型
假设我有一个功能:
如何为可能的东西指定返回类型None
?
python - 使用列表/元组/等。从键入与直接将类型引用为列表/元组/等
从模块中使用List
,Tuple
等有什么区别:typing
与直接引用 Python 的类型相反:
我什么时候应该使用其中一个?
python - 没有循环导入的 Python 类型提示
我正试图将我的大班分成两部分;好吧,基本上进入“主”类和带有附加功能的mixin,如下所示:
main.py
文件:
mymixin.py
文件:
现在,虽然这工作得很好,但类型提示MyMixin.func2
当然不能工作。我不能 import main.py
,因为我会得到一个循环导入并且没有提示,我的编辑器(PyCharm)无法分辨是什么self
。
我正在使用 Python 3.4,但如果那里有可用的解决方案,我愿意迁移到 3.5。
有什么方法可以将我的类拆分为两个文件并保留所有“连接”,以便我的 IDE 仍然为我提供自动完成功能以及所有其他来自它的知道类型的好东西?
python - 打字。任何与对象?
typing.Any
使用和object
打字有什么区别吗?例如:
相比:
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: str
andclass Starship
示例,但不确定最后一个:如何primes: List[int] = []
解释?它是否定义了一个只允许整数的空列表?