在 PyDev Eclipse 中解析 f 字符串的语法错误

Syntax errors with parsing f-strings in PyDev Eclipse

我有一个在 Eclipse 中使用 PyDev 的 python 项目。对于如下示例代码,

var = 'element'
width = 11
print(f'{var:>{width}}')

代码被执行打印所需的输出element,右对齐且没有错误。

但是,PyDev 解析此代码在 > 个字符处引发错误和一条错误消息 SyntaxError: Unbalanced '{'。但自 6.3.1 版 (#PyDev-884) 以来,PyDev 确实支持 f 字符串中的双括号。如果我删除这个 > 字符,字符串将打印为 'left-aligned' (我不想要)并且 PyDev 不会引发任何错误。这证实 PyDev 确实支持双括号,但错误消息不正确。

另一方面,PEP 498 for f-strings 没有提到任何关于使用 f-strings 对齐的内容。对齐是 f 字符串语法的一部分吗?如果是,为什么 PEP 指南中没有提到它,为什么 PyDev 解析器会引发错误?

  1. Python: 3.6.3
  2. PyDev: 6.3.3
  3. 日食:氧气.2 (4.7.2)

谢谢!

这是 PyDev 中的一个问题(不幸的是 https://www.python.org/dev/peps/pep-0498/ 没有提供 f 字符串的语法,并且对预期的解析应该如何进行非常清楚 -- 我将更新 PyDev 以涵盖提供的示例)。