问题标签 [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.
python - 类型提示中的子类
我想允许使用 Python 3 进行类型提示以接受某个类的子类。例如:
现在输入以下代码时:
我得到一个 PyCharm IDE 提示“预期类型 A,改为类型 [B]。”
如何在此处更改类型提示以接受 A 的任何子类型?
根据PEP 484(“类型是特定参数类型的子类型的表达式也可以用于该参数。”),我知道我的解决方案(cls: A)
应该有效吗?
python - 检查 pandas 数据帧是否已传递给函数
我有一个这样定义的函数:
我想测试是否df
通过(df
是熊猫DataFrame
)
如果df
没有通过,我想做类似的事情
但是这个测试现在不起作用。我明白了
python - PEP 484:类型提示的专有类型
我可以指定独占类型吗?像这样的东西:
python - 装饰器的 Python 3 类型提示
考虑以下代码:
这段代码按预期工作。现在想象一下我想扩展它,而不是仅仅执行func(*args, **kwargs)
我想在参数中注入用户名。因此,我修改了函数签名。
我想不出一个正确的方法来输入这个。我知道在这个例子中,装饰函数和返回函数在技术上应该具有相同的签名(但即使是没有检测到)。
python - typehints -> 无或留空
使用 python 3,可以选择使用类型提示。
我的问题是,如果一个函数返回 None,应该添加这个,还是留空。
IE
哪个 PEP 解决了这个问题?
python - 模块类型的 Python 类型
我正在使用importlib.import_module
如下动态加载 Python 模块
有人可以告诉我模块类型的正确类型注释是什么。该typing
模块不包含一个,我无法在其他地方找到答案。
python - 用打字继承python 3中的泛型类型
我正在做一些关于输入 Python 3.6 和 mypy 的实验。我想设计一个可以通过两种方式实例化的实体类:
- 通过使用普通的初始化器 (
p = Person(name='Hannes', age=27)
) - 静态地来自状态对象 (
p = Person.from_state(person_state)
)。
派生的Entity
类Person
将状态类作为通用参数。但是,当使用 mypy 验证代码时,我收到一个错误,Person.from_state
它没有从它继承的类中获取状态类型:
untitled2.py:47:错误:“Entity”的“from_state”的参数 1 具有不兼容的类型“UserState”;预期的“状态类型”
我认为通过继承Entity[UserState]
,StateType
将绑定到UserState
并且子类中的方法签名将相应更新。
这是完整的代码。我已经标记了我怀疑我做错了什么的行?????
。第 47 行几乎在底部,并在代码中进行了标记。
python - 如何使用类型提示为参数指定多种类型?
我有一个 Python 函数,它接受 XML 数据作为str
.
为方便起见,该函数还会检查并在必要xml.etree.ElementTree.Element
时自动转换为。str
是否可以使用类型提示指定参数可以作为两种类型之一给出?
python - mypy 可以处理列表推导吗?
在上面的代码上运行mypy
时,我得到:
是test_tuple
不是保证有3个int
元素?不mypy
处理这样的列表推导,还是有另一种在这里定义类型的方法?
python - 如何在 PyCharm 中正确注释 ContextManager?
如何contextmanager
在 PyCharm 中注释 a 的 yield 类型,以便它正确猜测with
子句中使用的值的类型 - 就像它猜测f
created inwith open(...) as f
是一个文件一样?
例如,我有一个这样的上下文管理器:
我如何让 PyCharm 知道每个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: Path
,borders_file
但似乎没有帮助。