我想用一个枚举代表一个类的内部状态:使用一个枚举作为一类的标志,巨蟒
#!/usr/bin/python3
from enum import Enum
class testClass:
class Color(Enum):
red = 1
blue = 2
green = 3
def __init__(self):
self.value = 0
def setValue(self, Color):
self.value = Color
这就是我想可能是一个可能的实现。这两个讨厌的事情,我看到的是:
设置
value
我必须做的:q = testClass()
q.setValue(q.Color.red)
,我找到
q.Color.red
好歹umpleasant,我宁愿有这样的:Color.red
或只是red
。也许唯一的办法是使用一些字符串比较,但这正是我试图避免使用枚举。我得到一个额外的方法是
q.Color.mro
,这看起来像是一个枚举类的内部方法。这个是来做什么的?
谢谢为你的答案。是的,只是类testClass是在主文件的另一个文件中定义的。我用'testClassfile import testClass'输入testClass。如果我按照你的建议,我将不得不添加'从testClassfile导入颜色'。 我知道,也许我太挑剔,但我试图找到一个“优雅”的方式... – BiA 2015-04-01 13:59:34
那么,如果你想导入是作为testClass的一部分,你将不得不坚持引用它作为testClass.Color 编辑:对于额外的样式点,您可以通过以下方式将两个类(如果单独)导入: from testClassfile import testClass,Color – 2015-04-01 14:09:11