在Python中访问枚举

时间:2014-12-06 11:06:44

标签: python enums

如何从另一个类访问枚举 - 例如,对于B类,如下所示:

from examples import A

class B:
    properties = A

    def __init__(self, name, area, properties):
        self.name = name
        self.area = area
        self.properties = properties

B.property = B("test", 142.43, A)
print ("B color: "+B.properties.color)
print ("A color: "+str(A.color._value_))

#in separate module
from enum import Enum

class A(Enum):
    color = "Red"
    opacity = 0.5

print("A color: "+str(A.color._value_))

当我跑A级时:

A color: Red

当我跑B级时:

    print ("B color: "+B.properties.color)
AttributeError: 'module' object has no attribute 'color'

1 个答案:

答案 0 :(得分:3)

A是包含您的类的模块,而不是类本身。您还必须在模块中引用该类:

from examples.A import A

或使用

properties = A.A

print ("A color: "+str(A.A.color._value_))

尽量避免对模块使用大写名称; Python style guide (PEP 8)建议您使用全部小写作为模块名称。这样你就不会轻易混淆模块和它们中包含的类。