如果我在iPython窗口中:
eTest = Enum('zero','one','two','three')
我可以:
eTest.value = eTest.values[2]
并打印eTest.value给出了正确的答案:两个
我在python类中尝试相同的东西,它告诉我:
AttributeError: 'str' object has no attribute 'values'
如何设置eTest以获得Enums的[3]值而无需输入“three”这个词?
解决方法 您不能使用这样的Enum对象. Enum对象只是一种声明,它告诉具有其中一个的HasTraits类创建一个执行特定验证的实例属性.此实例属性不是Enum对象:它将是枚举值之一.您在Enum对象上修改的.value属性只会更改默认值.这不是你在对象生命周期中设置的东西.from traits.API import Enum,HasTraits,TraitErrorETEST_VALUES = ['zero','three']class Foo(HasTraits): eTest = Enum(*ETEST_VALUES)f = Foo()assert f.eTest == 'zero'f.eTest = 'one'f.eTest = ETEST_VALUES[3]try: f.eTest = 'four'except TraitError: print 'Oops! Bad value!'
how can I set eTest to have the [3] value of the Enums without having to type in the word ‘three’?
您可以按照上面的示例将列表与Enum()调用分开,并在需要时将其编入索引.
总结以上是内存溢出为你收集整理的python – Traits枚举值全部内容,希望文章能够帮你解决python – Traits枚举值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)