如何将枚举分配给anj抽象类属性?

时间:2017-08-08 18:01:31

标签: python enums abstract-class subclass

不确定这是否可行,但我的目标是创建一个使用枚举器作为子类的基本抽象类。

以下是目前为止的代码以及/ isn是否正常工作。我想以某种方式能够引用"类颜色(枚举)"在我的" IdealUse"类。有什么需要改变的想法吗?

BaseClass.py

async

IdealUse.py

from abc import ABCMeta, abstractmethod
from enum import Enum


class Base(metaclass=ABCMeta):

    default_color = 'yellow'

    @abstractmethod
    def get_a(self):
        pass

class Colors(Enum):
    blue = 1
    green = 2
    red = 3

Base.register(Colors)

1 个答案:

答案 0 :(得分:0)

再次感谢那些回复的人。让我重新思考这些条款和我所要求的东西让我找到了一个有效的解决方案。

BaseClass.py

from abc import ABCMeta, abstractmethod
from enum import Enum

class Colors(Enum):
    BLUE = 1
    GREEN = 2
    RED = 3


class Base(metaclass=ABCMeta):

    default_color = 'yellow'
    color_list = Colors

    @abstractmethod
    def get_a(self):
        pass

IdealUse.py

from abstractbase import Base

class IdealUse(Base):

    def __init__(self):
        self.value_of_a = self.get_a()  # this works
        self.ideal_color = self.default_color  # this works
        self.color_of_sky = self.color_list(1)  # now it returns blue!

    def get_a(self):
        return 'working'