扩展枚举类型

(类来自 pyomo.common.enums)

class pyomo.common.enums.ExtendedEnumType(cls, bases, classdict, **kwds)[source]

基础类:EnumType

用于创建扩展另一个Enum的enum.Enum的元类

通常,enum.Enum 类是不可扩展的:也就是说, 它们在定义时被冻结,不能作为另一个枚举的基类。这个元类提供了一种解决方法,用于创建一个扩展现有枚举的新枚举。基枚举中的所有成员都会作为扩展枚举的成员存在。

示例

class ObjectiveSense(enum.IntEnum):
    minimize = 1
    maximize = -1

class ProblemSense(enum.IntEnum, metaclass=ExtendedEnumType):
    __base_enum__ = ObjectiveSense

    unknown = 0
>>> list(ProblemSense)
[<ProblemSense.unknown: 0>, <ObjectiveSense.minimize: 1>, <ObjectiveSense.maximize: -1>]
>>> ProblemSense.unknown
<ProblemSense.unknown: 0>
>>> ProblemSense.maximize
<ObjectiveSense.maximize: -1>
>>> ProblemSense(0)
<ProblemSense.unknown: 0>
>>> ProblemSense(1)
<ObjectiveSense.minimize: 1>
>>> ProblemSense('unknown')
<ProblemSense.unknown: 0>
>>> ProblemSense('maximize')
<ObjectiveSense.maximize: -1>
>>> hasattr(ProblemSense, 'minimize')
True
>>> ProblemSense.minimize is ObjectiveSense.minimize
True
>>> ProblemSense.minimize in ProblemSense
True
__init__(*args, **kwargs)

方法

__init__(*args, **kwargs)

mro()

返回一个类型的方法解析顺序。

成员文档

mro()

返回一个类型的方法解析顺序。