相关疑难解决方法(0)

创建一个抽象的Enum类

我正在尝试Flag使用抽象方法创建一个抽象枚举(实际上)。我的最终目标是能够根据我定义的基本枚举创建复合枚举的字符串表示形式。我可以在不使类抽象的情况下获得此功能。

这是基本Flag类和示例实现:

from enum import auto, Flag

class TranslateableFlag(Flag):
    @classmethod
    def base(cls):
        pass

    def translate(self):
        base = self.base()
        if self in base:
            return base[self]
        else:
            ret = []
            for basic in base:
                if basic in self:
                    ret.append(base[basic])
            return " | ".join(ret)

class Students(TranslateableFlag):
    ALICE = auto()
    BOB = auto()
    CHARLIE = auto()
    ALL = ALICE | BOB | CHARLIE

    @classmethod
    def base(cls):
        return {Students.ALICE: "Alice", Students.BOB: "Bob",
                Students.CHARLIE: "Charlie"}
Run Code Online (Sandbox Code Playgroud)

一个示例用法是:

((Students.ALICE | Students.BOB).translate())
[Out]: 'Alice | …
Run Code Online (Sandbox Code Playgroud)

python enums python-3.6

12
推荐指数
2
解决办法
474
查看次数

多继承元类冲突

我需要一个类的双重继承.我尝试了几种语法,但我不理解元类的概念.

from PyQt5.QtGui import QStandardItem
from configparser import ConfigParser

class FinalClass(ConfigParser, QStandardItem):
    def __init__(self, param):
        ConfigParser.__init__(self)
        QStandardItem.__init__(self)
Run Code Online (Sandbox Code Playgroud)

python pyqt multiple-inheritance python-3.x pyqt5

9
推荐指数
2
解决办法
5341
查看次数