繁体   English   中英

Python 2 中的 Python 3 类型提示

Python 3 type hints in Python 2

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有似乎适用于 python3 的 python def定义:

def get_default_device(use_gpu: bool = True) -> cl.Device:

在 python2 下,我收到以下语法错误:

root:~/pyopencla/ch3# python map_copy.py
Traceback (most recent call last):
  File "map_copy.py", line 9, in <module>
    import utility
  File "/home/root/pyopencla/ch3/utility.py", line 6
    def get_default_device(use_gpu: bool = True) -> cl.Device:
                                  ^
SyntaxError: invalid syntax

如何使类型提示与python2兼容?

1 个回复

Python 3.0 的PEP 3107中引入了函数注释。 注释作为类型提示的使用在 Python 3.5+ 的PEP 484 中正式化。

3.0 之前的任何版本都将根本不支持您用于类型提示的语法。 但是,PEP 484 提供了一种解决方法,一些编辑可能会选择尊重它。 在您的情况下,提示如下所示:

def get_default_device(use_gpu=True):
    # type: (bool) -> cl.Device
    ...

或更详细地说,

def get_default_device(use_gpu=True  # type: bool
                      ):
    # type: (...) -> cl.Device
    ...

PEP 明确指出,这种形式的类型提示应该适用于任何版本的 Python,如果它受支持的话。

1 为什么在 Python 中没有提示 self 类型

我一直在研究类型提示我的代码,但注意到 Python 程序员通常不会在他们的程序中键入提示self 即使我查看文档,它们似乎也没有输入提示 self,请参见此处。 这是来自 3.10 版的前向声明 我可以理解为什么在 3.7 中使用前向声明引入类型注释之前这是一个问题 更多信息在这里和这里 ...

2 Python 中的类型提示元组

当我想在 Python 中键入一个元组时,例如: 需要给出元组中项目的确切数量。 这与列表类型提示不同: 因此,在某种程度上,这是因为元组的类型。 因为它们的设计是不可更改的,所以您必须对其中的项目数量进行硬编码。 所以我的问题是,有没有办法使元组类型提示中的项目数量灵活? 我试过类似的东 ...

3 Emacs 中的 Python 类型提示

我来自 PyCharm,想了解使用 Emacs (Spacemacs) 进行 Python 设置。 PyCharm 有一个叫做Type Hinting 的特性,它基本上允许指定类型,然后根据指定的类型获取提示。 Python 3.5+ 具有PEP 484 -- 类型提示,允许在没有注释的情况下 ...

4 Python:类型提示中的私有类型?

我喜欢类型提示,尤其是我的方法参数。 在我当前的脚本中,一个函数应该检索argparse._SubParsersAction类型的参数。 从下划线可以看出,这是一种约定俗成的私有类型。 我想这就是为什么 PyCharm 在尝试导入它时会抱怨错误消息Cannot find reference '_Su ...

7 如何“投射” Python类型提示

我有一个客户端库,它的功能看起来像这样 但是,该客户端的文档指出,如果未指定timeout或“无”,它将有效地使用默认超时。 我已经测试过这种情况,并且可以正常指定timeout的None值 然后,我的代码使用以下内容包装此connect方法: 当我对它运行mypy来验证 ...

8 Python 类型提示和 `*args`

假设我有这样的功能: 假设我想说args所有元素都是int ; 从PEP 0484 开始,表达它的正确方法是什么? 我应该做类似的事情吗 或类似的东西 或者完全是别的什么? 特别是,我试图在 PyCharm 中有效地使用类型提示,而且我想到的所有解决方案似乎都无法帮助 PyCharm ...

9 在python中提示类型

我在将类型提示放入python程序时遇到一些问题。 它来自python 3.5。 在此示例中: 当我运行mypy时,我有以下内容: 我不明白的是为什么我有那些错误。 ...

10 spaCy 的 python 类型提示

我正在努力为涉及 spaCy 类型的任何内容设置类型提示。 尝试使用 spaCy 文档中的“语言”和“令牌”等返回类型,但它们似乎不起作用......我使用的是 python 3.8.5。 举个例子说我有这个: 根据文档,此“返回语言”。 我尝试了 Language 或 spacy.Lang ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM