2

这是我文件中的内容(第 94 行):

desktop = {k[0]:(v[0]/v[1]) for k,v in mymap.items() if k[1] == 'f'}

以下是从命令行运行此代码的结果:

File "process.py", line 94
    desktop = {[0]k:(v[0]/v[1]) for k,v in ctr_map.items() if k[1] == 'f'}
                  ^
SyntaxError: invalid syntax

奇怪,对吧?为了笑,我更改了原始行以匹配错误中的行(希望两个交换正确),我得到:

File "process.py", line 94
    desktop = {00kk:(v[0]/v[1]) for k,v in ctr_map.items() if k[1] == 'f'}
                  ^
SyntaxError: invalid syntax

然后,我从目录中删除了所有 pyc 文件(没有 process.pyc,但有一个用于进程加载的另一个文件)并且它起作用了!我想我正在寻找更多的解释而不是修复。我还不能复制(还没有!)。

这发生在 pypy (首先),然后是常规 python。
版本信息:

Python 2.7.1+ (r271:86832, Sep 27 2012, 21:12:17) 
[GCC 4.5.2] on linux2

Python 2.7.2 (0e28b379d8b3, Feb 09 2012, 19:41:03)
[PyPy 1.8.0 with GCC 4.4.3] on linux2
4

0 回答 0