运行此代码会产生nameError,表示未定义ret
。为什么ret
在if action == 'state'
块中有效但在elif action == list
块无效?
if action == 'stat':
ret = pp.stat()
print ret
sys.exit()
elif action == 'list':
for i in range(1, ret[0]+1):
mlist = pp.top(i, 0)
print 'line: ', len(mlist[1])
ret = pp.list()
print ret
答案 0 :(得分:0)
if action == 'stat'
为false,ret
永远不会被定义
所以当执行elif时,从未定义ret
答案 1 :(得分:0)
在for循环中实例化变量之前,您正在引用ret
。在for循环之前向上移动ret = pp.list()
,你就可以了。
elif action == 'list':
ret = pp.list()
for i in range(1, ret[0]+1):
mlist = pp.top(i, 0)
print 'line: ', len(mlist[1])
print ret