问题标签 [python-typing]

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 回答
4032 浏览

python - 如何在 Python 类型提示中表达多重继承?

在 Java、C# 中,泛型方法可以有一个带约束的类型参数来定义必须实现的接口。

在Python中,如果我想使用类型提示来指定一个变量必须继承类A和B,我该怎么做?我检查了打字模块,它只有一个联合,这意味着变量的类型可以是任何提示,而不是所有提示。

创建一个继承 A 和 B 的新类 C 似乎是一个解决方案,但看起来很麻烦。

0 投票
0 回答
126 浏览

python - Python 3.x 元组类型提示

我是一个“老”的 Python 程序员(几年),但我对这种语言的类型提示原则相对较新。

因此,当我将项目的代码转换为使用类型提示时,我的 linter (flake8) 给了我一个我不明白的错误。这是代码示例和具体错误:

来自 linter 的错误是这样的: F821:undefined name 'AttributeModel' F821:undefined name 'AttributeValueModel'

有人可以解释我为什么得到这个吗?类是正确定义的,不是吗?

谢谢您的帮助

0 投票
1 回答
133 浏览

python - 来自父类的类型提示

你怎么能像这样从父类中暗示一个类?

0 投票
2 回答
959 浏览

python - mypy 方法定义与基类中的定义不兼容

我有一个做某事的父类和两个以正交方式包装方法的子类。当我尝试合并两个子类时,mypy 抱怨以下错误。

基类“Foo”中“run”的定义与基类“Bar”中的定义不兼容

这两个类如何“不兼容”以及如何修改我的代码以安抚mypy?我可以不做吗

0 投票
1 回答
1571 浏览

python - Python 2 中的 Python 3 类型提示

我有def似乎适用于 python3 的 python 定义:

在 python2 下,我收到以下语法错误:

如何使类型提示与 python2 兼容?

0 投票
2 回答
344 浏览

python - 为什么 Python sys.version_info 缺少 _asdict() 方法来转换为字典?

sys.version_info 是否有一些独特之处,这意味着它没有返回正确的命名元组并且没有该_asdict功能?

0 投票
3 回答
7778 浏览

python - 如何在函数中键入提示文件名?

Python中提示文件名的最佳方法是什么,以便将任何内容传递给可以作为文件打开的函数是可以接受的?

尤其是通过 Pathlib 找到的字符串和文件。

0 投票
0 回答
829 浏览

python-3.x - python打字:如何继承自我类型(使用静态类型)

我希望一个子类继承其父类返回的方法self。这样做时,类型检查器(mypy)默认将返回类型保留为父类。我希望它自动将子类推断为返回类型。对于简单的情况,我发现以下代码可以工作:

如果我尝试使用上下文管理器,这个“解决方案”就会崩溃:

它适用于第一种情况,但不适用于第二种情况。我认为这是因为我没有指定typing.ContextManager. 如果我这样做,mypy 会将这两种类型显示为Any

据我了解,发生这种情况是因为此时Self未绑定到任何具体类型。我现在有点迷茫,我没有找到任何办法让它工作......这甚至可能吗?

0 投票
1 回答
8165 浏览

python - (任何)python 模块的类型提示是什么?

我想为模块(类“模块”)添加(Python3)类型提示。该typing包不提供一个,它types.ModuleType()是一个构造函数,它返回一个特定名称的模块对象。

例子:

至少在 PyCharm 中会导致

“在 types.pyi 中找不到引用 ModuleType”。

请注意,模块类型的 Python 类型不能回答我的问题,因为它没有解释ModuleType它既是构造函数又是类型,如下面的回答。

0 投票
1 回答
10351 浏览

python - 在 Python 中定义递归类型提示?

假设我有一个接受 a Garthok、 an Iterable[Garthok]、 anIterable[Iterable[Garthok]]等的函数。

有没有办法为 arg 指定一个类型提示,表明它接受任何级别的Iterables Garthok?我怀疑不是,但我想我会检查我是否遗漏了什么。

作为一种解决方法,我只是指定了几个级别,然后以Iterable[Any].