Python PEP 484 类型提示 -> 返回类型是类名还是无?

Posted

技术标签:

【中文标题】Python PEP 484 类型提示 -> 返回类型是类名还是无?【英文标题】:Python PEP 484 Type Hints -> return type either class name or None? 【发布时间】:2018-11-05 22:24:08 【问题描述】:

我正在使用 Python 3.6.5。

下面的 A 类代表一个数据库表,使用 SQLAlchemy。

我正在定义一个返回一行的@staticmethod 方法,但如果没有结果,它将返回None

因为它返回一个类 A 的实例,所以符号通常是这样的:

-> A:

def 签名的末尾,但由于 A 尚未定义,因为它在 A 类本身上,您应该将其引用为:

-> 'A':

-> 'A': 足够了吗? 还是有某种 OR 语法?

提前感谢您的建议。

【问题讨论】:

【参考方案1】:

你可以使用Optional[A],这意味着它可以返回A或None

要在 A 类和 B 类之间做“或”,请使用 Union[A, B]

请注意,您应该从输入中导入 Optional 和 Union

【讨论】:

python.org/dev/peps/pep-0484/#using-none - 谢谢。知道了。 Optional 是 Union[A,None] 的简写:-)

以上是关于Python PEP 484 类型提示 -> 返回类型是类名还是无?的主要内容,如果未能解决你的问题,请参考以下文章

PEP-484 具有自己类型的类型注释

typing-python用于类型注解的库

python 3.5代码中的变量需要类型注释

在 Python 中注释“文件类型”的正确方法

python 基础

我应该如何使用 Optional 类型提示?