【发布时间】:2015-04-27 12:25:15
【问题描述】:
我需要一个类的双重继承。 我尝试了几种语法,但我不明白元类的概念。
from PyQt5.QtGui import QStandardItem
from configparser import ConfigParser
class FinalClass(ConfigParser, QStandardItem):
def __init__(self, param):
ConfigParser.__init__(self)
QStandardItem.__init__(self)
【问题讨论】:
-
这里没有元类。您面临什么问题?
-
@MartijnPieters - 他可能指的是此类定义将产生的错误:
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases -
@mata: 啊,所以
QStandardItem大概使用了元类。那么这里真正的问题是为什么 OP 试图在一个类中混合QStandardItem和ConfigParser。 -
我需要这个,因为我使用 QStandardItemModel 和 QTableView。每一行都是 FinalClass 的一个实例,每个实例是一个文件。
-
@Mauricio。这不是使用多重继承的好理由。只需将
FinalClass设为QStandardItem的子类,然后委托给ConfigParser的内部实例即可。或者,更好的是,忘记使用标准项目,而是使用 Qt 的 ModelL/View Architecture 来创建 custom model。
标签: python python-3.x pyqt pyqt5 multiple-inheritance