python-typing相关内容
this answer建议在class级别使用import命令来加载其定义可以移动到其他模块的方法。作为一个最小的例子, class_def.py: class C: from _methods import m _methods.py: def m(self): return "hello" 通常,大多数功能代码完成的IDE都会将某些类中定义的函数识别为
..
我想在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
..
当涉及到构造函数、赋值和方法调用时,PyCharm IDE 非常擅长分析我的源代码并确定每个变量应该是什么类型.我喜欢它正确的时候,因为它给了我很好的代码完成和参数信息,如果我尝试访问一个不存在的属性,它会给我警告. 但是当涉及到参数时,它什么都不知道.代码完成下拉菜单无法显示任何内容,因为它们不知道参数的类型.代码分析无法查找警告. 类人:def __init__(自我,姓名,年龄):s
..
我在 Python 3 中有以下代码: 类位置:def __init__(self, x: int, y: int):自我.x = x自我.y = ydef __add__(self, other: Position) ->位置:返回位置(self.x + other.x,self.y + other.y) 但我的编辑器 (PyCharm) 说无法解析参考 Position (在 __add_
..
我想在 for 循环中注释变量的类型.我试过这个: for i: int in range(5):经过 但显然没有用. 我期望在 PyCharm 2016.3.2 中自动完成.像这样的预注释: i: int对于范围内的 i (5):经过 没有帮助. 附言PyCharm 的预注释 >= 2017.1 解决方案 根据 PEP 526,这是不允许的: 此外,不能注释fo
..
我正在使用 Python 3 打字功能以实现更好的自动完成. 很多时候我有返回键/值(字典)和特定键的函数.超级简单的例子: def get_info(name):name_first_letter = 名称[0]返回 {'my_name': name, 'first_letter': name_first_letter} 我想给这个函数添加类型提示,告诉其他使用这个函数的人期待什么.
..
假设我有一个函数: def get_some_date(some_argument: int=None) ->%datetime_or_None%:如果 some_argument 不是 None 并且 some_argument == 1:返回日期时间.utcnow()别的:返回无 如何为可以为 None 的内容指定返回类型? 解决方案 您正在寻找 可选. 由于您的返回类型可以
..
我有一个函数只能返回a、b或c,它们都是T类型的代码>.我想在签名中包含这个事实,因为它们在函数的上下文中具有特殊的含义.我该怎么做? 目前,我使用这个 def fun(...) ->“a或b或c":#简要解释文档字符串中 a、b 和 c 的含义 这是正确的吗? 我知道我可以做到这一点 def fun(...) ->:# 简要解释其文档字符串中 a、b 和 c 的含义 但正如我
..
我在下面包含的代码会引发以下错误: NameError: name 'Vector2' 未定义 在这一行: def 翻译(自我,位置:Vector2): 为什么 Python 在 Translate 方法中无法识别我的 Vector2 类? 类 Vector2:def __init__(self, x: float, y: float):自我.x = x自我.y = ydef 翻译(自
..
Python 3.6 即将发布.PEP 494 -- Python 3.6 发布时间表 提到了 12 月底,所以我浏览了Python 3.6 的新增功能,看到他们提到了变量注释: PEP 484 引入了函数参数类型注释的标准,也就是类型提示.此 PEP 为 Python 添加了用于注释变量类型(包括类变量和实例变量)的语法: 素数:List[int] = []船长:str # 注意:没有初
..
我在 Python 3 中有以下代码: class 位置:def __init__(self, x: int, y: int):自我.x = x自我.y = ydef __add__(self, other: Position) ->位置:返回位置(self.x + other.x,self.y + other.y) 但是我的编辑器 (PyCharm) 说引用 Position 无法解析(在
..
我有一个 Python 函数,它接受 XML 数据作为 str. 为方便起见,该函数还会检查xml.etree.ElementTree.Element,并在必要时自动转换为str. 导入 xml.etree.ElementTree 作为 ETdef post_xml(数据:str):如果类型(数据)是 ET.Element:数据 = ET.tostring(data).decode()#
..
有没有办法让 Python 静态分析器(例如在 PyCharm、其他 IDE 中)获取 argparse.Namespace 对象上的类型提示?示例: parser = argparse.ArgumentParser()parser.add_argument('--somearg')parsed = parser.parse_args(['--somearg','someval']) # 类型:
..
在python 3.x中,通常使用函数的返回类型注解,如: def foo() ->字符串:返回“酒吧" “void"类型的正确注释是什么? 我正在考虑 3 个选项: def foo() ->无: 不是逻辑 IMO,因为 None 不是类型, def foo() ->类型(无): 使用我所知道的最佳语法获取NoneType, def foo(): 省略显式返回类型
..
注释需要类对象而不是该类的实例的函数参数的正确方法是什么? 在下面的例子中,some_class 参数应该是一个类型实例(它是一个类),但这里的问题是 type 太宽泛了: def 构造(some_class: type,related_data:Dict[str, Any]) ->任何:... 在 some_class 需要一组特定类型对象的情况下,使用 type 根本没有帮助.typ
..
我想定义一个泛型类型.类似的东西: T = TypeVar('T')RecurSeqOf = 序列[联合[通用[T],序列[T]]]# mypy 错误:变量“typing.Generic"作为类型无效 有办法吗? 整个背景 实际上,我需要一个递归泛型类型 T = TypeVar('T')RecurSeqOf = Sequence[Union[T, 'RecurSeqOf']]]
..
我有一个可以发布某种类型消息的发布者: T = TypeVar('T')类发布者(通用 [T]):def __init__(self, topic: str) ->没有任何:self.__topic = 主题def 发布(自我,味精:T):经过# 举个例子,创建一个可以发布整数的发布者p = Publisher[int](“喋喋不休")p.publish(1) 这有效,并且发布函数具有正确的类
..
鉴于我想正确地使用来自输入模块的命名元组的类型注释: from typing import NamedTuple, List类 Foo(NamedTuple):my_list: 列表[int] = []foo1 = foo()foo1.my_list.append(42)foo2 = foo()打印(foo2.my_list)#打印[42] 在 Python 中避免可变默认值痛苦的最佳或最干净
..
我有一个装饰器,它接受一个函数并返回具有一些附加属性的相同函数: import functools从输入导入 *def 装饰器 (func: Callable) ->可调用:func.attr1 = “垃圾邮件"func.attr2 = “鸡蛋"返回函数 如何键入提示decorator 的返回值?我希望类型提示传达两条信息: 返回值是一个Callable 返回值具有属性attr1 和a
..
假设我有一个 python 函数,它的单个参数是一个非平凡类型: 从输入导入列表,字典ArgType = List[Dict[str, int]] # 这可以是任何非平凡类型def myfun(a: ArgType) ->没有任何:... ... 然后我有一个从 JSON 源中解压出来的数据结构: 导入json数据 = json.loads(...) 我的问题是:如何在运行时检查data是
..