NameError: 名称 'process' 未定义 (python)
我有一个Python脚本,内容如下:
if options.benchmark == 'perlbench':
process = Mybench.perlbench
elif options.benchmark == 'bzip2':
process = Mybench.bzip2
elif options.benchmark == 'gcc':
process = Mybench.gcc
....
np = 1
....
for i in xrange(np):
...
system.cpu[i].workload = process[i]
但是我遇到了这个错误:
system.cpu[i].workload = process[i]
NameError: name 'process' is not defined
有没有人知道怎么解决这个问题?我对Python不是很熟悉。
2 个回答
3
这意味着你的代码块
if options.benchmark == 'perlbench':
process = Mybench.perlbench
elif options.benchmark == 'bzip2':
process = Mybench.bzip2
elif options.benchmark == 'gcc':
process = Mybench.gcc
没有匹配到任何options.benchmark
,所以变量process
从来没有被赋值。你需要在最后加上一个
else:
process = Mybench.<somedefault>
(当然要根据情况填入<somedefault>
)。或者如果这是一个不合法的情况,你也可以抛出一个异常。
3
你发的这段代码看起来是来自于一个叫 cmp.py
的脚本,这个脚本可以在 这里 找到(不过现在链接好像不能用了)。
这个脚本是在命令行中运行的,需要你为 -b
或 --benchmark
提供一个有效的值。也就是说,你要么没有提供这个值,要么提供了一个无效的值。
你可以通过添加一个 else
的情况来修改这个脚本,这样可以显示一个更有用的错误信息,但如果你不使用合适的值,它还是无法正常工作。
比如,你可以试试这样:
python cmp.py --benchmark perlbench