为什么会产生一个名称错误?

2024-04-27 04:48:16 发布

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

运行此代码会产生名称错误,表示未定义ret。为什么retif 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

Tags: 代码名称if错误sysactionstatlist
2条回答

if action == 'stat'为false,则ret永远无法定义

因此,当执行elif时,就永远不会定义ret

在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

相关问题 更多 >