Python 3枚举与函数值
- 论坛
- Python 3枚举与函数值
22 浏览
Python 3枚举与函数值
我注意到Python 3中的Enums(链接)有一个奇怪之处。
如果你将一个Enum的值设置为一个函数,它会阻止该属性被包装为Enum对象,这将阻止你能够使用像EnumCls['AttrName']
这样的酷功能动态加载属性。
这是一个bug吗?是故意的吗?
我搜索了一会儿,但没有找到可以在Enum中使用的受限值的提及。
以下是显示这个问题的示例代码:
class Color(Enum): Red = lambda: print('In Red') Blue = lambda: print('In Blue') print(Color.Red) #- 应该是Color.Red,根据文档 print(Color.Blue) # - 应该是Color.Blue,根据文档 print(Color['Red']) # 抛出KeyError - 应该是Color.Red,根据文档
另外,这是我第一次提问,所以如果有什么我应该做得不同的地方,请告诉我!谢谢帮助!