问题标签 [mypy]
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.
python - round() 的返回类型
我有以下代码:
原来round()的返回值被认为是一个int。之所以如此,我得出结论是因为在第二个语句中,mypy 抱怨:
我使用的是 Python 3.5,所以它应该是一个浮点数。我错过了什么。我应该以某种方式向 mypy 暗示 Python 版本吗?具体如何?
python - 为什么 mypy 认为这个增加的赋值是错误的?
我在文件 test.py 中有以下代码:
控制台输出:
使用的 Mypy 版本:0.4.4
为什么第 3 行正确而第 7 行错误?
后期编辑:
此行为现在已被归类为 mypy 中的错误。
https://github.com/python/mypy/issues/2098
因此,可以预期这两个语句序列将来都会被 mypy 接受。
python - mypy 虚假错误:“模块”没有带有 etree 的属性“XPath”
我正在尝试mypy
在一些使用LXML库解析 XML 的代码中进行类型检查。
在我使用etree.XPath
的每一行上,我都从mypy
. 例如,以下简单的脚本
产生错误
但是脚本运行良好,并且我XPath
的 ' 在运行时正常工作。
我还尝试#type:ignore
了导入,我认为这可能会告诉mypy
不要对该库进行类型检查,但这并没有抑制错误。
etree.XPath
通过将调用移动到没有任何类型注释的单独函数中, 我确实在抑制一些错误方面取得了一些成功,但这似乎是一种黑客行为,并迫使我以尴尬的方式安排我的代码。
我想知道是否有办法完全抑制这些虚假错误,或者可能暗示该etree.XPath
功能确实存在,因为它似乎无法自行解决。
需要明确的是,我实际上并不关心知道从库mypy
中出来的结构的正确类型。lxml
我更关心将类型信息放在我自己的类中,我将解析的信息推入其中,所以我想要有类型检查函数,用于etree.XPath
执行查询、查找数据,然后将它们推入类型-在我的脚本中定义的带注释的类。
mypy
中的其他功能似乎没有困难etree
,例如我的调用没问题etree.parse
我目前正在使用mypy
0.4.4
python - 如何获取 MyPy 的正则表达式模式类型
如果我编译一个正则表达式
并希望将该正则表达式传递给函数并使用 Mypy 进行类型检查
我遇到了这个问题
似乎您可以导入_sre
,但由于某种原因SRE_Pattern
不可导入。
python - Mypy "class module" annotation
I have a function load_config
that loads and returns a python module:
This snippet prints <class 'module'>
.
How do I annotate load_config
return value with Mypy?
python - 如何在不明确列出类型的情况下确保参数具有相同的类型?
让我们假设我们需要一个函数,只要两个参数具有相同的类型,它就可以接受任何类型的两个参数。您将如何使用 mypy 对其进行静态检查?
如果我们只需要该函数接受一些有限数量的已知类型,这很容易:
对于此代码,mypy 可以确保 to 的参数f
是两个int
s 或两个str
s 或两个 s 列表int
或两个返回的零参数函数int
。
但是如果我们事先不知道类型怎么办?如果我们需要类似于let f (a:'t) (b:'t) = ()
F# 和 OCaml 的东西怎么办?简单的写作T = TypeVar('T')
会使事情变得f(1, "2")
有效,这不是我们想要的。
python - 类型自引用类型别名
我想要一个引用自身的类型:
使用 python 3.5 和最新的 mypy 我得到:
是否有捷径可寻?我的猜测是前向引用只支持类,而不是别名?
我正在尝试做的事情:
python - 在 Python 3 中可以结合参数描述和类型提示吗?
在 Python 3 中,您可以向函数参数添加描述:
并且您还可以提供预期的类型,以后可以使用以下命令进行检查mypy
:
两者在我眼中都非常有用 - 有没有办法将两者结合起来仍然能够让mypy
检查一致性?
python - python运行时类型检查
我想检查一个函数的输出和另一个函数的输入之间的类型兼容性。我知道 mypy 会进行静态类型检查,但在从 python 运行它时找不到任何东西。这是我正在尝试做的一个例子:
我发现了一个名为typegaurd的小型 github 项目,它似乎做了类似的事情,但我真的不愿意为我正在处理的代码使用一个小型的 3rd 方库。最干净的方法是什么?我可以直接使用标准库或 MyPy 中的任何内容吗?
python - 如何为 Mypy 类型注释指定 OrderedDict K,V 类型?
我正在使用 Python 3.5 和 Mypy 对我的脚本进行一些基本的静态检查。最近我重构了一些返回 OrderedDict 的方法,但是当我尝试使用指定 Key 和 Value 类型的返回注释时遇到了“'type' object is not subscriptable”错误。
简化示例:
这是运行时的python输出:
然而,Mypy 对注释中的类型注释没有问题,如果我尝试这样做,实际上会发出警告result[123] = 123
。
这是什么原因造成的?