这是我在文件中的内容(第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