如何从另一个类访问枚举 - 例如,对于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'
答案 0 :(得分:3)
A
是包含您的类的模块,而不是类本身。您还必须在模块中引用该类:
from examples.A import A
或使用
properties = A.A
和
print ("A color: "+str(A.A.color._value_))
尽量避免对模块使用大写名称; Python style guide (PEP 8)建议您使用全部小写作为模块名称。这样你就不会轻易混淆模块和它们中包含的类。