如何在 Python 中指定(什么)的方法返回类型列表?

koa*_*aok 15 python return-type python-3.x

假设我有一个如下所示的方法

def validate(self, item:dict, attrs:dict)-> list:
Run Code Online (Sandbox Code Playgroud)

如果我想更具体地告诉我我的返回类型是一个 ValidationMessages 列表?

我应该如何/我能做到这一点吗?

(我会将标记标记为重复项,因为这与扩展列表或展平无关)我问的是如何更具体地识别方法的返回类型......

Ram*_*lat 28

在 Python 3.6 中,内置的类型包将完成这项工作。

from typing import List

def validate(self, item:dict, attrs:dict)-> List[str]:
    ...
Run Code Online (Sandbox Code Playgroud)

符号有点奇怪,因为它使用括号但效果很好。

编辑:使用新的 3.9 版本的 Python,您可以在不从typing模块导入的情况下注释类型。唯一的区别是您在typing模块中使用真实类型名称而不是定义的类型。

def validate(self, item:dict, attrs:dict)-> list[str]:
    ...
Run Code Online (Sandbox Code Playgroud)

注意:类型提示只是帮助 IDE 的提示。不强制执行这些类型。您可以为变量添加一个提示 asstrint像这样设置它:

from typing import List

def validate(self, item:dict, attrs:dict)-> List[str]:
    ...
Run Code Online (Sandbox Code Playgroud)

您的 IDE 会警告您,但您仍然可以运行代码。因为这些只是提示。Python 不是类型严格的语言。相反,它采用动态类型。