【问题标题】:Set comprehensions don't work on Pydev (Python)集合推导在 Pydev (Python) 上不起作用
【发布时间】:2010-08-26 15:56:30
【问题描述】:
{x for x in range(10)}

在 IDLE 上完美运行,但是当我在 eclipse 中尝试这个(使用 Pydev 插件)时,我得到一个语法错误:

未定义变量:x

是因为 Pydev 不支持集合推导吗?我能做些什么来完成这项工作? (这只是一个不起作用的例子。所有集合推导对我都不起作用)。

(我使用的是 Python 3)

【问题讨论】:

    标签: python eclipse-plugin set pydev list-comprehension


    【解决方案1】:

    这是 PyDev 中的一个错误;在这种情况下忽略编辑器的警告并执行代码:它会工作。

    我明白了很多,PyDev 并不完美,但已经足够好了!

    【讨论】:

    • 谢谢。我不喜欢出错,所以我不会使用该功能。我会这样做: set(x for x in range(10))
    • 根据变更日志,这不应该在 1.4.3 版中修复吗?如果不是,也许我们应该发布一个错误报告。
    【解决方案2】:

    确保 Pydev 配置为使用 Python 3。

    【讨论】:

    • 我猜是因为我一直使用 Python 3 的特性所以配置的。但是,我如何检查它是否配置为使用 Python 3?
    • 已检查。我使用 Python 3。还能是什么?
    • 窗口 > 首选项 > Pydev > 解释器 - Python
    • 当我从 shell 运行它时:{x for x in range(10)},这就是输出:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    • 语法错误是编辑器中的警告还是从 pydev 运行脚本时收到的警告?在第一种情况下,这显然是 Pydev 1.4.3 版中修复的一个错误:mail.python.org/pipermail/python-announce-list/2009-February/…
    【解决方案3】:

    您可以找出您正在使用的 Python 版本

    import sys
    sys.stdout.write( sys.version )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2014-02-23
      相关资源
      最近更新 更多