难以解决“TypeError:'list'对象不可调用”的问题

时间:2018-03-13 01:09:15

标签: python python-3.x

错误:

  

Traceback(最近一次调用最后一次):文件   “/ root / PycharmProjects / Capstone2 / main ”,第207行,in       for range(0,4)中的paramIndex:TypeError:'list'对象不可调用

     

在处理上述异常期间,发生了另一个异常:

     

Traceback(最近一次调用最后一次):文件   “/ root / PycharmProjects / Capstone2 / main ”,第249行,       print('stream ending')File“/usr/lib/python3/dist-packages/picamera/camera.py”,第758行,in   退出       self.close()文件“/usr/lib/python3/dist-packages/picamera/camera.py”,第737行,in   关       self.stop_recording(splitter_port = port)文件“/usr/lib/python3/dist-packages/picamera/camera.py”,第1198行,in   stop_recording       encoder.close()文件“/usr/lib/python3/dist-packages/picamera/encoders.py”,第431行,in   关       self.stop()文件“/usr/lib/python3/dist-packages/picamera/encoders.py”,第815行,in   停       super(PiVideoEncoder,self).stop()文件“/usr/lib/python3/dist-packages/picamera/encoders.py”,第419行,   停       self._close_output()文件“/usr/lib/python3/dist-packages/picamera/encoders.py”,第349行,in   _close_output       mo.close_stream(输出,打开)文件“/usr/lib/python3/dist-packages/picamera/mmalobj.py”,第371行,   close_stream       stream.flush()ValueError:关闭文件的刷新

相关守则:

angle = []
distance = []
speed = []
current = []
timestamp = []
parameterList = []
parameterList.extend((angle, distance, speed, current, timestamp))                

            for paramIndex in range(0, 4): # LINE 207
                # Select Range
                range = getRange(index, paramIndex + 5)
                cell_list = sheet.range(range[0], range[1], range[2], range[3])

                cellIndex = 0

                for cell in cell_list:
                    try:
                        cell.value = parameterList[paramIndex][cellIndex]
                    except:
                        print("PI: " + str(paramIndex))
                        print("CI: " + str(cellIndex))
                        print("PL LEN: " + str(len(parameterList)))
                        print("P LEN: " + str(len(parameterList[paramIndex])))

我的想法:

错误让我认为paramIndex是一个列表而不是整数,但代码在前四次迭代中执行正常。这让我觉得我的上一个列表(时间戳)有问题。我唯一可以想象的是我的上一个列表是错误的是某种索引越界问题但是......
从不打击除了块 最大值cellIndex达到30(预期)
parameterList的长度为5(预期)
时间戳的长度为31(预期)

我很难过。如果有人能提供一些非常感谢的帮助。

1 个答案:

答案 0 :(得分:2)

paramIndex很好,但你需要避免调用与函数同名的变量。在这种情况下,range()是一个标准的python函数,但是你创建了一个名为'range'的变量。此后如果你试图使用范围函数,你会得到一个'对象不可调用'错误,因为它试图将你的范围对象用作标准范围函数。

如果您坚持想要保留范围对象名称,那么使用xrange()而不是range()来定义for循环,并且不应该有任何冲突。