我一直在研究类型提示我的代码,但注意到 Python 程序员通常不会在他们的程序中键入提示self 即使我查看文档,它们似乎也没有输入提示 self,请参见此处。 这是来自 3.10 版的前向声明 我可以理解为什么在 3.7 中使用前向声明引入类型注释之前这是一个问题 更多信息在这里和这里 ...
提示:本站收集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兼容?
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,如果它受支持的话。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.