Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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_Qt - Fatal编程技术网

Python 类构造函数中的位置参数问题

Python 类构造函数中的位置参数问题,python,qt,Python,Qt,我现在正在用python开发一个Qt应用程序,在一些位置参数方面遇到了一些问题 我有两个类,一个名为FrameMark,另一个名为MarkerCursor,它们都是同一父类的子类。FrameMark工作正常,但当我尝试实例化MarkerCursor时,出现以下错误: Traceback (most recent call last): File "frame_controls.py", line 360, in <module> main() File "frame_

我现在正在用python开发一个Qt应用程序,在一些位置参数方面遇到了一些问题

我有两个类,一个名为FrameMark,另一个名为MarkerCursor,它们都是同一父类的子类。FrameMark工作正常,但当我尝试实例化MarkerCursor时,出现以下错误:

Traceback (most recent call last):
  File "frame_controls.py", line 360, in <module>
    main()
  File "frame_controls.py", line 355, in main
    w = Window(sys.argv[1])
  File "frame_controls.py", line 62, in __init__
    self.timeline = Timeline(self.frames)
  File "frame_controls.py", line 322, in __init__
    self.markerCursor = MarkerCursor(None, self)
TypeError: MarkerCursor() takes 1 positional argument but 2 were given
这里是我实例化它们的地方:

    for i in range(len(self.frames)):
        mark = FrameMark(self.frames[i], None, self)
        self.marks.append(mark)

    # Make the cursor marker
    self.markerCursor = MarkerCursor(None, self)

我不知道为什么FrameMark工作正常,但MarkerCursor给了我错误。谢谢

问题的出现是因为我不小心放下了:

def MarkerCursor(QGrapihcsRectItem):
而不是:

class MarkerCursor(QGraphicsRectItem):

Python认为这是我调用的一个函数,而不是一个新的类实例。

它们继承自的超类的_uinit_uu签名是什么?你确定没有用其他东西来隐藏MarkerCursor吗?@BrenBarn它们都继承自QGraphicsRectItem,文档在这里,但我不确定这是否是问题所在。@Brunodesshuilliers你说的阴影是什么意思?你是说超载吗?如果是这样,则没有其他地方可以在源代码中写入MarkerCursor。可能的话,但名称MarkerCursor可能与您假定的名称没有绑定-例如,星形导入可以轻松地重新绑定以前导入的名称。只需在该行插入调试器,然后检查MarkerCursor在该行真正引用的内容。
class MarkerCursor(QGraphicsRectItem):