问题标签 [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 - 在 namedtuple 中输入提示
考虑以下代码:
上面的代码只是展示我想要实现的目标的一种方式。我想namedtuple
使用类型提示。
你知道任何优雅的方式来达到预期的结果吗?
python - 打字模块中的什么类型描述了一个类?什么类型描述了一个函数?
Python 3.5 中的新typing
模块提供了许多用于类型注释的工具。它是否提供了封装类概念的对象或类型?功能的概念如何?
在下面定义装饰器的代码中,应该代表什么class_
?应该代表什么function
?(typing.Callable
是不够的,因为例如一个类是可调用的,但代码试图识别方法。) (模块本身的no_type_check()
装饰器typing
可能是这样行为的装饰器的原型。no_type_check()
它本身没有任何注释,类型提示或其他。)
python - 正在定义的类型对象的类型提示
我得到错误:
我确信这是一个已知的范例,因为它似乎是一个非常常见的分层类使用问题(自引用类)。我知道我可以将类型更改its_parent_org_unit
为 beobject
并且它可以工作,但这似乎是错误的做法,主要是因为它破坏了我在调用中检查类型的能力。its_parent_org_unit
更改为一种类型后,我得到object
了正确的结果:
我对想法和建议持开放态度。做这种事情的最“pythonic”方式是什么?
PS:这种“自引用类”范例/问题的名称是什么,我可以用它来查找其他建议?
python - numpy.ndarray 的类型提示/注释 (PEP 484)
有没有人为特定numpy.ndarray
类实现类型提示?
现在,我正在使用typing.Any
,但如果有更具体的东西会很好。
例如,如果 NumPy 人为他们的array_like对象类添加了类型别名。更好的是,在dtype级别实现支持,以便支持其他对象以及ufunc。
python - 类型注释中未定义名称
我目前正在创建一个 python 线性代数模块,以供娱乐和练习该语言。我最近尝试向模块添加类型注释,如下所示:
但是,当我尝试导入它时,它会吐出一个NameError: Name 'Vector' is not defined
. 我承认这个问题已经以某种形式在这里得到了回答,但它似乎并没有完全为我的情况提供答案。
我想知道的:
- 我已经在这个文件中定义了这个类。为什么它说名称未定义?
- 如何
Vector
以可用于注释的方式定义(作为 atype
)?
python - Python void 返回类型注解
在 python 3.x 中,通常使用函数的返回类型注解,例如:
“void”类型的正确注释是什么?
我正在考虑 3 个选项:
def foo() -> None:
- 不是逻辑 IMO,因为
None
不是类型,
- 不是逻辑 IMO,因为
def foo() -> type(None):
- 使用我所知道的最佳语法来获取
NoneType
,
- 使用我所知道的最佳语法来获取
def foo():
- 省略显式返回类型信息。
选项 2. 对我来说似乎是最合乎逻辑的,但我已经看到了 1 的一些实例。
python - *args 和 **kwargs 的类型注释
我正在尝试使用抽象基类来编写 Python 的类型注释来编写一些接口。有没有办法注释和的可能*args
类型**kwargs
?
例如,如何表示函数的合理参数是一个int
或两个int
s?type(args)
给出了Tuple
所以我的猜测是将类型注释为Union[Tuple[int, int], Tuple[int]]
,但这不起作用。
来自 mypy 的错误消息:
mypy 不喜欢函数调用是有道理的,因为它希望tuple
调用本身有 a 。解包后的添加也给出了我不明白的打字错误。
如何注释 和 的合理*args
类型**kwargs
?
python - 定义typing.Dict和dict之间的区别?
我正在练习在 Python 3.5 中使用类型提示。我的一位同事使用typing.Dict
:
两者都工作得很好,似乎没有区别。
我已阅读typing
模块文档。
我应该在typing.Dict
程序dict
中使用哪一个?