我从 python 2 中的模块 'collection' 得到语法错误(箭头函数)

I got syntax error from module 'collection' in python 2 (arrow function)

我正在尝试使用函数 'Counter'(来自 collection)做一些事情。

我收到以下错误。

File "/home/knut/catkin_ws/src/knut_ai_vehicle_2019/scripts/CameraStatus.py", line 5, in <module>
from collection import Counter

File "/home/knut/.local/lib/python2.7/site-packages/collection/__init__.py", line 1, in <module> 
from .Collection import Collection

File "/home/knut/.local/lib/python2.7/site-packages/collection/Collection.py", line 22
def __init__(self, items) -> None:
                          ^
SyntaxError: invalid syntax

这个脚本在ROS包里,据我所知ROS只支持python2。(我说的对吗?)

所以我正在使用 python 2.

我不知道,但是...我想这是一个来自 Python 2 不再更新的问题。

实际上,我以前从未见过那个箭头函数。

我一直在寻找,但我无法弄清楚为什么那个箭头会导致问题。

我唯一做的就是使用 pip 安装 'collection' 并导入它。

我希望任何遇到此错误的人帮助我。

->就是所谓的函数注解。函数注解与 python 2.x 如何拥有文档字符串有些相关。它们允许您将元数据附加到函数,在这种特定情况下,-> 是函数 return 类型的注释。您可以更完整地阅读注释 here.

您遇到的问题是因为注释是 3.x 功能,因此它在 2.x 中是无效语法。至于你的 ROS 需要 python 2.x 的观点,这是不正确的。 ROS Noetic 支持 Python3 并且由于它是最新的稳定版本,我建议使用该发行版。