堆栈跟踪中的奇数python错误代码与实际fi不匹配

2024-04-19 23:50:51 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我的档案(第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文件(没有过程.pyc,但有一个文件是由另一个进程加载的),它工作了!我想我更多的是想找个解释,而不是解决问题。我还没能繁殖。你知道吗

pypy(先是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

Tags: inpymapforiflineitemsprocess