首页 文章

难以解决“TypeError:'list' object is not callable”问题

提问于
浏览
2

错误:

回溯(最近一次调用最后一次):文件“/ root / PycharmProjects / Capstone2 / main”,第207行,用于范围(0,4)中的paramIndex:TypeError:'list'对象不可调用在处理上述异常时,发生另一个异常:Traceback(最近一次调用最后一次):文件“/ root / PycharmProjects / Capstone2 / main”,第249行,打印('stream ending')文件“/ usr / lib / python3 / dist-packages / picamera /camera.py“,第758行,在退出self.close()文件”/usr/lib/python3/dist-packages/picamera/camera.py“,第737行,关闭self.stop_recording(splitter_port = port)文件“/usr/lib/python3/dist-packages/picamera/camera.py”,第1198行,在stop_recording encoder.close()文件“/usr/lib/python3/dist-packages/picamera/encoders.py”中,行431,关闭self.stop()文件“/usr/lib/python3/dist-packages/picamera/encoders.py”,第815行,在stop super(PiVideoEncoder,self).stop()文件“/ usr / lib /python3/dist-packages/picamera/encoders.py“,第419行,在stop self._close_output()文件”/ usr / lib / python3 / dist-packages / picamera / encoders.py“,第349行,在_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 回答

  • 2

    paramIndex很好,但你需要避免调用与函数同名的变量 . 在这种情况下,range()是一个标准的python函数,但是你创建了一个名为'range'的变量 . 此后,如果您尝试使用范围功能,则会出现“对象无法调用”错误,因为它正在尝试将范围对象用作标准范围函数 .

    如果你坚持想要保留范围对象名称,那么使用xrange()而不是range()来定义你的for循环,你不应该得到任何冲突 .

相关问题