python-3.x - 这个函数声明中 -> List[int] 是什么意思?

标签 python-3.x

这个问题在这里已经有了答案:





What does -> mean in Python function definitions?

(9 个回答)


15 小时前关闭。




我想了解这个函数的声明:->List[int]:我已经学习了 Python 的基础知识,以前从未见过这样的函数声明

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:

最佳答案

它是所谓的“类型提示”(或“函数注释”;自 Python 3.0 起可用)。

  • -> List[int]意味着该函数应该返回一个整数列表。
  • nums: List[int], target: int意味着 nums预计是一个整数列表,并且 target预计为整数。

  • 不过,这并不是一个硬性要求,即您仍然可以使用为这些参数传递的不同类型的对象来调用函数,并且该函数也可以返回与整数列表不同的内容(与 Java 等其他语言中提供错误类型的语言不同)会导致编译错误)。换句话说:类型提示与程序执行无关,它们在运行时被忽略(忽略类型提示只是默认行为,但它们在运行时通过 __annotations__ 可用,所以你可以用它们做一些事情)。

    类型提示可以表达作者的意图,可以在程序执行前通过mypy等工具进行检查。 (这些可以检查例如一个函数是否只用正确类型的参数调用并返回正确类型的东西)。

    请注意 List在标准命名空间中不可用(与 list 不同),而是需要从 typing 导入这也
  • 为标准类型提供其他类型,如 Set , Dict , Tuple , Callable
  • 允许定义自己的类型
  • 提供其他类型的类型版本,例如 NamedTuple 而不是 namedtuple
  • 关于python-3.x - 这个函数声明中 -> List[int] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506017/

    相关文章:

    csv - Python : How to convert . ofx 文件转换为 .csv

    python - 如何连接两个 ID 不匹配的数据帧并创建新列来表示数据帧 ID 的来源?

    linux - 在 Ansible 中使用带有循环的寄存器

    linux - pip3读取超时错误

    python - 从 while 循环到 ValueError

    python - 如何在 python3 代码中找到 python2 路径?

    python - 为什么python 3.5找不到文件中导入的模块

    python - 在列表上使用remove()后"TypeError: object of type ' NoneType ' has no len()"

    python - bool 注释导致重复?

    linux - 如何在使用 cx_Freeze 6.0b1 卡住的 Linux 上的 python 3.7.3 脚本上修复 numpy 依赖路径?