python – Traits枚举值

python – Traits枚举值,第1张

概述我无法将枚举值设置为其中一个可能的类… 如果我在iPython窗口中: eTest = Enum('zero', 'one', 'two', 'three') 我可以: eTest.value = eTest.values[2] 并打印eTest.value给出了正确的答案:两个 我在python类中尝试相同的东西,它告诉我: AttributeError: 'str' object has no 我无法将枚举值设置为其中一个可能的类…

如果我在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枚举值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1193158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存