python-typing相关内容

如何在for循环中批注类型?

我想在for循环中注释一种类型的变量。我尝试过此操作,但不起作用: for i: int in range(5): pass 我期望的是PyCharm 2016.3.2中的自动完成功能,但使用 前置批注不起作用: i: int for i in range(5): pass P.S.预注适用于PyCharm>;=2017.1。 推荐答案 根据PE ..
发布时间:2022-02-21 09:36:34 Python

我如何告诉 PyCharm 参数应该是什么类型?

当涉及到构造函数、赋值和方法调用时,PyCharm IDE 非常擅长分析我的源代码并确定每个变量应该是什么类型.我喜欢它正确的时候,因为它给了我很好的代码完成和参数信息,如果我尝试访问一个不存在的属性,它会给我警告. 但是当涉及到参数时,它什么都不知道.代码完成下拉菜单无法显示任何内容,因为它们不知道参数的类型.代码分析无法查找警告. 类人:def __init__(自我,姓名,年龄):s ..
发布时间:2022-01-08 09:13:18 Python

如何在 for 循环中注释类型

我想在 for 循环中注释变量的类型.我试过这个: for i: int in range(5):经过 但显然没有用. 我期望在 PyCharm 2016.3.2 中自动完成.像这样的预注释: i: int对于范围内的 i (5):经过 没有帮助. 附言PyCharm 的预注释 >= 2017.1 解决方案 根据 PEP 526,这是不允许的: 此外,不能注释fo ..
发布时间:2021-12-11 12:44:39 Python

具有已知键类型的 Python 3 字典

我正在使用 Python 3 打字功能以实现更好的自动完成. 很多时候我有返回键/值(字典)和特定键的函数.超级简单的例子: def get_info(name):name_first_letter = 名称[0]返回 {'my_name': name, 'first_letter': name_first_letter} 我想给这个函数添加类型提示,告诉其他使用这个函数的人期待什么. ..
发布时间:2021-12-10 16:34:43 Python

为仅返回一组特定值的函数键入提示

我有一个函数只能返回a、b或c,它们都是T类型的代码>.我想在签名中包含这个事实,因为它们在函数的上下文中具有特殊的含义.我该怎么做? 目前,我使用这个 def fun(...) ->“a或b或c":#简要解释文档字符串中 a、b 和 c 的含义 这是正确的吗? 我知道我可以做到这一点 def fun(...) ->:# 简要解释其文档字符串中 a、b 和 c 的含义 但正如我 ..
发布时间:2021-12-02 17:05:45 Python

什么是变量注解?

Python 3.6 即将发布.PEP 494 -- Python 3.6 发布时间表 提到了 12 月底,所以我浏览了Python 3.6 的新增功能,看到他们提到了变量注释: PEP 484 引入了函数参数类型注释的标准,也就是类型提示.此 PEP 为 Python 添加了用于注释变量类型(包括类变量和实例变量)的语法: 素数:List[int] = []船长:str # 注意:没有初 ..
发布时间:2021-12-02 16:31:12 Python

Python void 返回类型注解

在python 3.x中,通常使用函数的返回类型注解,如: def foo() ->字符串:返回“酒吧" “void"类型的正确注释是什么? 我正在考虑 3 个选项: def foo() ->无: 不是逻辑 IMO,因为 None 不是类型, def foo() ->类型(无): 使用我所知道的最佳语法获取NoneType, def foo(): 省略显式返回类型 ..
发布时间:2021-11-10 22:11:30 Python

如何注释作为类对象(而不是类实例)的类型?

注释需要类对象而不是该类的实例的函数参数的正确方法是什么? 在下面的例子中,some_class 参数应该是一个类型实例(它是一个类),但这里的问题是 type 太宽泛了: def 构造(some_class: type,related_data:Dict[str, Any]) ->任何:... 在 some_class 需要一组特定类型对象的情况下,使用 type 根本没有帮助.typ ..
发布时间:2021-11-10 22:08:43 Python

Python Typing:创建一个具有泛型类型的类函数,并通过类访问该类型

我有一个可以发布某种类型消息的发布者: T = TypeVar('T')类发布者(通用 [T]):def __init__(self, topic: str) ->没有任何:self.__topic = 主题def 发布(自我,味精:T):经过# 举个例子,创建一个可以发布整数的发布者p = Publisher[int](“喋喋不休")p.publish(1) 这有效,并且发布函数具有正确的类 ..
发布时间:2021-09-11 19:54:17 其他开发

Typing.NamedTuple 和可变默认参数

鉴于我想正确地使用来自输入模块的命名元组的类型注释: from typing import NamedTuple, List类 Foo(NamedTuple):my_list: 列表[int] = []foo1 = foo()foo1.my_list.append(42)foo2 = foo()打印(foo2.my_list)#打印[42] 在 Python 中避免可变默认值痛苦的最佳或最干净 ..
发布时间:2021-09-11 19:54:03 Python

如何将自定义协议与 Callable 协议结合起来?

我有一个装饰器,它接受一个函数并返回具有一些附加属性的相同函数: import functools从输入导入 *def 装饰器 (func: Callable) ->可调用:func.attr1 = “垃圾邮件"func.attr2 = “鸡蛋"返回函数 如何键入提示decorator 的返回值?我希望类型提示传达两条信息: 返回值是一个Callable 返回值具有属性attr1 和a ..
发布时间:2021-09-11 19:53:23 Python

如何检查值是否与python中的类型匹配?

假设我有一个 python 函数,它的单个参数是一个非平凡类型: 从输入导入列表,字典ArgType = List[Dict[str, int]] # 这可以是任何非平凡类型def myfun(a: ArgType) ->没有任何:... ... 然后我有一个从 JSON 源中解压出来的数据结构: 导入json数据 = json.loads(...) 我的问题是:如何在运行时检查data是 ..
发布时间:2021-09-11 19:52:47 Python