问题标签 [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 回答
49834 浏览

python - 类型提示中的子类

我想允许使用 Python 3 进行类型提示以接受某个类的子类。例如:

现在输入以下代码时:

我得到一个 PyCharm IDE 提示“预期类型 A,改为类型 [B]。”

如何在此处更改类型提示以接受 A 的任何子类型?

根据PEP 484(“类型是特定参数类型的子类型的表达式也可以用于该参数。”),我知道我的解决方案(cls: A)应该有效吗?

0 投票
3 回答
3135 浏览

python - 检查 pandas 数据帧是否已传递给函数

我有一个这样定义的函数:

我想测试是否df通过(df是熊猫DataFrame

如果df没有通过,我想做类似的事情

但是这个测试现在不起作用。我明白了

0 投票
1 回答
156 浏览

python - PEP 484:类型提示的专有类型

我可以指定独占类型吗?像这样的东西:

0 投票
3 回答
20107 浏览

python - 装饰器的 Python 3 类型提示

考虑以下代码:

这段代码按预期工作。现在想象一下我想扩展它,而不是仅仅执行func(*args, **kwargs)我想在参数中注入用户名。因此,我修改了函数签名。

我想不出一个正确的方法来输入这个。我知道在这个例子中,装饰函数和返回函数在技术上应该具有相同的签名(但即使是没有检测到)。

0 投票
1 回答
1890 浏览

python - typehints -> 无或留空

使用 python 3,可以选择使用类型提示。

我的问题是,如果一个函数返回 None,应该添加这个,还是留空。

IE

哪个 PEP 解决了这个问题?

0 投票
1 回答
8732 浏览

python - 模块类型的 Python 类型

我正在使用importlib.import_module如下动态加载 Python 模块

有人可以告诉我模块类型的正确类型注释是什么。该typing模块不包含一个,我无法在其他地方找到答案。

0 投票
2 回答
6586 浏览

python - 用打字继承python 3中的泛型类型

我正在做一些关于输入 Python 3.6 和 mypy 的实验。我想设计一个可以通过两种方式实例化的实体类:

  • 通过使用普通的初始化器 ( p = Person(name='Hannes', age=27))
  • 静态地来自状态对象 ( p = Person.from_state(person_state))。

派生的EntityPerson将状态类作为通用参数。但是,当使用 mypy 验证代码时,我收到一个错误,Person.from_state它没有从它继承的类中获取状态类型:

untitled2.py:47:错误:“Entity”的“from_state”的参数 1 具有不兼容的类型“UserState”;预期的“状态类型”

我认为通过继承Entity[UserState],StateType将绑定到UserState并且子类中的方法签名将相应更新。

这是完整的代码。我已经标记了我怀疑我做错了什么的行?????。第 47 行几乎在底部,并在代码中进行了标记。

0 投票
1 回答
22971 浏览

python - 如何使用类型提示为参数指定多种类型?

我有一个 Python 函数,它接受 XML 数据作为str.

为方便起见,该函数还会检查并在必要xml.etree.ElementTree.Element时自动转换为。str

是否可以使用类型提示指定参数可以作为两种类型之一给出?

0 投票
1 回答
2769 浏览

python - mypy 可以处理列表推导吗?

在上面的代码上运行mypy时,我得到:

test_tuple不是保证有3个int元素?不mypy处理这样的列表推导,还是有另一种在这里定义类型的方法?

0 投票
2 回答
3206 浏览

python - 如何在 PyCharm 中正确注释 ContextManager?

如何contextmanager在 PyCharm 中注释 a 的 yield 类型,以便它正确猜测with子句中使用的值的类型 - 就像它猜测fcreated inwith open(...) as f是一个文件一样?

例如,我有一个这样的上下文管理器:

我如何让 PyC​​harm 知道每个borders_f像这样创建的都是一个pathlib.Path(从而启用Path方法的自动完成border_f)?当然,我可以# type: Path在每条with语句之后发表评论,但似乎可以通过正确注释来完成temp_border_file

我尝试了Path,typing.Iterator[Path]typing.Generator[Path, None, None]作为 , 的返回类型temp_border_file,以及在上下文管理器的代码中添加# type: Pathborders_file但似乎没有帮助。