Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 声明的列表引发非类型异常_Python_List_Python 2.7_Nonetype - Fatal编程技术网

Python 声明的列表引发非类型异常

Python 声明的列表引发非类型异常,python,list,python-2.7,nonetype,Python,List,Python 2.7,Nonetype,我有一个来自其他人的python模块的代码片段,它引发了一个异常(AttributeError:'NoneType'对象没有属性'append')。该片段是: def generateFragments(self): tr = self.deviceTransform() if tr is None: return pts = np.empty((2,len(self.data['x']))) pts[0] = self.data['x']

我有一个来自其他人的python模块的代码片段,它引发了一个异常(
AttributeError:'NoneType'对象没有属性'append'
)。该片段是:

def generateFragments(self):
    tr = self.deviceTransform()
    if tr is None:
        return
    pts = np.empty((2,len(self.data['x'])))
    pts[0] = self.data['x']
    pts[1] = self.data['y']
    pts = fn.transformCoordinates(tr, pts)
    self.fragments = []
    pts = np.clip(pts, -2**30, 2**30) ## prevent Qt segmentation fault.
                                      ## Still won't be able to render correctly, though.
    for i in xrange(len(self.data)):
        rec = self.data[i]
        pos = QtCore.QPointF(pts[0,i], pts[1,i])
        x,y,w,h = rec['fragCoords']
        rect = QtCore.QRectF(y, x, h, w)
        self.fragments.append(QtGui.QPainter.PixmapFragment.create(pos, rect))
例外信息是:

[14:35:59]  Ignored exception:

    |==============================>>
    |  Traceback (most recent call last):
    |    File "/usr/lib/pymodules/python2.7/pyqtgraph/debug.py", line 35, in w
    |      func(*args, **kwds)
    |    File "/usr/lib/pymodules/python2.7/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 714, in paint
    |      self.generateFragments()
    |    File "/usr/lib/pymodules/python2.7/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 685, in generateFragments
    |      self.fragments.append(QtGui.QPainter.PixmapFragment.create(pos, rect))
    |  AttributeError: 'NoneType' object has no attribute 'append'
    |  
    |==============================<<
[14:35:59]忽略异常:
|==============================>>
|回溯(最近一次呼叫最后一次):
|文件“/usr/lib/pymodules/python2.7/pyqtgraph/debug.py”,第35行,w
|func(*args,**kwds)
|文件“/usr/lib/pymodules/python2.7/pyqtgraph/graphicsItems/ScatterPlotItem.py”,第714行,绘制
|self.generateFragments()
|文件“/usr/lib/pymodules/python2.7/pyqtgraph/graphicsItems/ScatterPlotItem.py”,第685行,在generateFragments中
|self.fragments.append(QtGui.QPainter.PixmapFragment.create(pos,rect))
|AttributeError:“非类型”对象没有属性“附加”
|  

|==============================================我想到的两种可能性是:

  • 并发性(根据@ekhumoro的评论)
  • 该类正在定义一个
    \uuuuu getattribute\uuuu
    方法,该方法会使常用的属性检索机制短路

  • self.data
是属性吗?如果是这样的话,该函数中可能会有某种东西将
self.fragments
设置为
None
。我没有发现任何其他可能导致问题的原因。是的,
self.data
是一个
numpy
array异常是否在第一次迭代时发生?否,它总是发生在
self.data
迭代的某个地方,并且总是在发生时退出(即,它可能发生在25/60,并在25时停止,下一次失败可能发生在迭代0/111,以此类推)是否有任何内容与此函数同时运行?受影响的列表是实例属性而不是局部变量,因此其他代码可以轻松将其设置为
None
。尝试修补代码以将列表构建为局部变量,并仅在循环完成后将其分配给
self.fragments