如何限制traits.api Dict()中可能的键和值

时间:2018-07-12 16:31:42

标签: python traits

我无法使用traits.api将用户输入限制为具有Dictionary Trait的类。 当使用具有预定义值的普通Trait()时,traits程序包会限制输入。但是当使用Dict时却没有。但是我该怎么办?

from traits.api import Dict, HasPrivateTraits, Trait

class traittest(HasPrivateTraits):

    value_trait = Trait(1,2)

    value_dict = Dict(key_trait=Trait('a'),value_trait=Trait(1,2))

    value_dict2 = Dict({'a':Trait(1,2)})


# now use the class...
tt = traittest()
tt.value_trait = 10 # ----> this does not work because input is restricted to be 1 or 2. Perfect!
tt.value_dict # ----> {} is empty! why? And it is not restricting if i do
tt.value_dict = {'b': 10}
tt.value_dict2 # returns ----> {'a': <traits.traits.CTrait at 0x12a2b198>} and does also not restrict if i do:
tt.value_dict2 = {'b': 10}

是否有可能限制字典的输入?还是需要自定义特征?

谢谢!

0 个答案:

没有答案
相关问题