问题标签 [type-annotation]

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.

0 投票
1 回答
3116 浏览

python-3.x - Python AttributeError:模块没有属性

我有一个 python 模块文件,它有一堆类定义及其方法 sample.py

现在我想将此文件导入另一个 python 文件并在定义如下函数时使用类型注释:比如 samplers.py

以上是抛出 ​​AttributeError: module 'sample' has no attribute 'Sampler'。上面的实现不正确吗?

0 投票
2 回答
80 浏览

scala - 找到一个体面的替代强制显式类型注释?

在测试我最近创建的一些代码时,我发现有些段落没有显式类型注释就无法编译。我试图在以下代码片段中最小化问题:

Base 有一个伴随对象,其应用方法定义如下:

当我尝试使用此应用方法实例化 Base 时,我无法绕过 aS 的显式类型注释:

如果我删除了 aS 的显式类型注释,则 aS类型Set[State[S]]而不是Set[MidState[S]],它需要用于 apply 方法。尽管将(State("C") :: Nil).toSet直接插入到 apply 方法中,是否有更好的解决方案来避免这种显式类型注释?

0 投票
2 回答
51 浏览

scala - 为什么 Scala 中的类型注释会改变一个 val

为什么我在以下这些场景中得到这种类型的注释差异。对于方案 1

对于场景 2

为什么在场景 1 中返回类型是一个函数而不是 Seq 的集合。

0 投票
1 回答
324 浏览

python - 如何为多种可能的参数类型使用字符串文字类型注释?

我们可以使用对象作为类型注解:

我们也可以使用字符串字面量作为类型注解:

但是,我们如何在更复杂的情况下使用字符串文字,例如当我们接受多个参数类型时?如果我使用对象,我会这样做:

如果我们使用字符串文字,这相当于什么?有没有一种语法允许我在这种复杂的情况下使用字符串文字?

0 投票
3 回答
6673 浏览

python - 如何获取 Python 变量注释?

在定义带有注释字段的类/模块时,如何像在函数中一样获得注释?

现在我需要来自getattr(t,'x')

0 投票
1 回答
411 浏览

python - 如何在 Python3.7/3.8 中使用泛型命名元组?

我正在尝试在 Python 3.7(和 3.8)中使用通用命名元组功能,但解释器会引发错误。我用的是坏方法吗?

引发以下错误:

0 投票
1 回答
9483 浏览

python - Django 模型的类型注释

我正在做一个 Django 项目。由于这是一个新项目,我想用 python 3.6+ 类型注释对其进行完全注释。我正在尝试注释模型,但我很难找到一个好的方法。

让我们IntegerField以 为例。我看到了两种注释它的选择:

数字 1 在 mypy 中失败:

2 号对于 mypy 来说是可以的,但作为 PyCharm 的 IDE 无法解决它,并且经常抱怨使用了错误的类型。

是否有任何最佳实践来正确注释模型,这将满足 mypy 和 IDE 的要求?

0 投票
1 回答
309 浏览

python - Python 不允许在解包时注释变量的类型

PEP 526说明如下:

请注意,虽然语法确实允许元组打包,但它不允许在使用元组解包时注释变量的类型。

为什么python解包时不支持变量的类型注释?PS。我必须先对类型进行注释,然后再进行拆包,这很好,只是在拆包时进行注释会更整洁。

0 投票
0 回答
66 浏览

python - 当代码包含类型注释时,Visual Studio 可以警告 Python 中的键入冲突吗?

有没有办法配置 Visual Studio 2019,以便在我将错误类型的参数传递给 Python 函数时向我发出警告,这与函数的类型注释说它应该接收的相反?例如:

在此示例中,该areaOfACircle函数使用可选的 Python 3 类型注释语法,如 PEP 526 中所述。当我的代码似乎忽略类型注释时,我希望收到来自 Visual Studio 的警告;在这种情况下,该警告可以帮助避免致命错误。当然,Python 是一种动态类型语言,但类型注释的部分承诺是 IDE 可以使用它们来发现代码中的潜在错误。我想知道如何在 Visual Studio 中打开它。

0 投票
1 回答
2989 浏览

python - 带有类型提示的默认与可选函数参数

因此,该函数gendata接受两个可选参数(namesource),然后根据source调用的值parser使用相同的参数,但是在此函数中需要这些参数。

  1. 解决所需参数与不需要参数的推荐方法是什么?
  2. Python 文档中有一个用于typing.Types的示例,它表明Type[SuperClass]应该接受从它继承的所有子类。为什么mypy在这种情况下抱怨,为什么只针对 arg 1 和 2 而不是 3 ( source)?

示例.py:

测试: