Python 为什么会产生名称错误?
运行此代码会产生一个名称错误,表示未定义Python 为什么会产生名称错误?,python,python-2.7,nameerror,Python,Python 2.7,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: ', l
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
如果action=='stat'
为false,则永远不会定义ret
因此,当执行elif时,在变量在for循环中实例化之前,永远不会定义ret您正在引用的
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
请张贴与您描述相符的代码;目前发布的示例不完整。这并不意味着发布更多的代码,而是意味着编辑代码,直到它按照你所说的去做。为了证明行为,构建一个包括回溯(如果有)的模型。