【问题标题】:What is the means of List[float]? [duplicate]List[float] 的含义是什么? [复制]
【发布时间】:2022-01-16 07:45:45
【问题描述】:

我看到部分代码是这样的:

from typing import List
c: List[float] = [7.3, 1.2, 2.6, 9.9, 'a']

type(c[3])
type(c[4])

输出:(float, str)

  1. 如果List[float]的手段呢?
  2. 如果列表中的最后一个元素不是浮动的,那么为什么我们没有收到任何错误?
  3. 我们什么时候应该使用这种代码?

【问题讨论】:

  • 这意味着对象 c 是 list 类型,它包含 float 类型的值。这只是告诉用户他们在这个对象中获得的数据类型。由于并非必须拥有所有已定义的类型后数据,因此您可以添加其他内容,但为此需要将类型提示更新为 LIst[float, str]
  • "列表中的最后一个元素如果不是浮动的,那么为什么我们没有收到任何错误?"运行时不强制执行类型提示。

标签: python python-3.x


【解决方案1】:
  1. 这意味着 c 是一个包含浮点类型的列表。
  2. python 不强制类型提示,它只是一个提示,您可以使用 assert 强制它。
  3. 最好每次它对您和其他人都非常有帮助,特别是如果您使用 IDE 编写代码,因为这样它可以向您显示对象具有的所有方法和成员。

【讨论】:

    【解决方案2】:

    您正在使用类型提示功能,但 python 不强制执行静态类型。

    使用您的代码并获得所需行为(错误)的一种简单方法是使用静态类型检查器 mypy - http://mypy-lang.org/

    python -m pip install mypy
    mypy yourCode.py
    

    结果:

    test.py:2: error: List item 4 has incompatible type "str"; expected "float"
    Found 1 error in 1 file (checked 1 source file)
    

    【讨论】:

      猜你喜欢
      • 2017-11-21
      • 1970-01-01
      • 2017-08-28
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多